Аватар для xxXAKEPxx
2 / 2 / 2
Регистрация: 30.01.2013
Сообщений: 150

НС выполняющая функцию для двух чисел

24.03.2017, 17:02. Показов 3438. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Собственно меня интересует, как НС способна получать новые данные на основе обобщения предыдущих. Нашёл много статей про сети, которые обрабатывают данные, и сравнивают их с уже выученными. Выбирается наиболее совпавший. Для этого используются разнообразные алгоритмы основанные на перемножении матриц или построении простейшего графа нейронов. Однако я не понимаю, как написать НС, которую можно, например, научить складывать два числа (хотя бы до 0 до 999). Конечно же, мы сначала её обучим: дадим её результата сложения всех однозначных чисел, рандомных двузначных и трёхзначных, а что дальше? Любые мысли по программной реализации приводят меня к построению конкретного алгоритма, похожего на длинную арифметику. Как сделать так, что бы НС догадалась, что от неё хотят. Понимаю, что это уже слишком похоже на ИИ, но возможно есть уже статьи про это.
Так же непонятно, можно ли будет научить такую НС вычислять любую другую функцию, зависящую от двух чисел.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2017, 17:02
Ответы с готовыми решениями:

Внешняя процедура, выполняющая сложение двух чисел (передача параметров через стек)
Помогите, пожалуйста!!!! Написать прорамму с внешней процедурой, выполняющую сложение 2 чисел с передачей параметров процедуры через стэк.

Создать функцию, которая для двух данных чисел определяет в каком числе произвольных чисел больше
создать функцию,которая для двух данных чисел определяет в каком числе произвольных чисел больше

Написать функцию для сложения двух чисел
... без использования "+" и других арифметических операций. P.S. Кто знает, пожалуйста, не пишите ответ сразу, пусть другие тоже...

10
681 / 555 / 74
Регистрация: 20.09.2014
Сообщений: 3,624
24.03.2017, 20:36
Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
Как сделать так, что бы НС догадалась, что от неё хотят.
Вы что-то запутались в своих рассуждениях. Нейронная сеть "догадалась", что надо складывать два числа, но Вы утверждаете обратное, что она не "догадалась" и хотите, чтобы она все-таки "догадалась". Вы хоть в курсе, что нейронная сеть способна успешно работать после обучения неполным набором примеров и при наличии погрешностей и ошибочных примеров?
0
 Аватар для xxXAKEPxx
2 / 2 / 2
Регистрация: 30.01.2013
Сообщений: 150
24.03.2017, 20:51  [ТС]
Я попросил помочь, а не указывать на мои ошибки (которых нет). Ладно, объясняю.
Я не говорил, что НС не "догадалась". Я просто не понимаю, как реализовать подобное прогнозирование. Я не смог сам найти примеров с реализацией НС, которая бы прогнозировала результат функции на основе обученного. Ещё раз прошу, киньте ссылки, возможно исходники, возможно на C++.
0
681 / 555 / 74
Регистрация: 20.09.2014
Сообщений: 3,624
25.03.2017, 04:29
Хорошо. Я не буду указывать на Ваши ошибки, возможно Вы просто писали пост, не удосужившись позаботиться о логичности предложений, либо не совсем представляя того, чего хотите.

Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
Однако я не понимаю, как написать НС, которую можно, например, научить складывать два числа (хотя бы до 0 до 999). Конечно же, мы сначала её обучим: дадим её результата сложения всех однозначных чисел, рандомных двузначных и трёхзначных, а что дальше?
Значит так. Работа с любым обучаемым алгоритмом происходит в два этапа: обучение и эксплуатация. Соответственно, ответ на Ваш вопрос: далее последует эксплуатация, то есть машина будет осуществлять ту функцию, которой она обучилась. Этапы обучения и эксплуатации могут также налагаться друг на друга по времени.

Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
Как сделать так, что бы НС догадалась, что от неё хотят.
Без обучающих примеров не обойтись, то есть надо обеспечить обучение - это вычисление весов и порогов синапсов. Чем больше примеров, тем лучше. Результат не всегда может получиться удовлетворительным, так как нужно уметь выбирать правильно структуру сети, начальные веса и пороги и т.п. и т.д.

Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
Так же непонятно, можно ли будет научить такую НС вычислять любую другую функцию, зависящую от двух чисел.
Можно.
0
28 / 28 / 5
Регистрация: 27.10.2015
Сообщений: 89
25.03.2017, 04:58
Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
Добрый день.
Вы забыли указать в чём причина вашего интереса и сколько времени вы готовы потратить, чтобы его удовлетворить. Ответы на ваши вопросы есть, но для их восприятия надо хотя бы знать базу (минимум, что такое НС и как они работают). А чтобы узнать эту базу надо прочитать учебник или пройти онлайн курс. И это уже не меньше недели вдумчивого чтения.
0
defun
603 / 617 / 44
Регистрация: 30.04.2011
Сообщений: 702
25.03.2017, 19:26
Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
научить складывать два числа (хотя бы до 0 до 999)
полусумматор + простая рекуррентная сеть
0
1639 / 1542 / 256
Регистрация: 19.02.2010
Сообщений: 4,120
26.03.2017, 21:47
Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
Однако я не понимаю, как написать НС, которую можно, например, научить складывать два числа (хотя бы до 0 до 999).
А не нужно обучать нейросетки таким задачам, для решения которых они не предназначены или не проектировались.


Цитата Сообщение от transformator.t Посмотреть сообщение
полусумматор + простая рекуррентная сеть
Обычный линейный сумматор, без всяких рекурсий, и не превращая его в какой-то формальный нейрон (т.е. не добавляя никакой нелинейности на выход сумматора).


Цитата Сообщение от Mikhaylo Посмотреть сообщение
Без обучающих примеров не обойтись
Ну зачем Вы предлагаете ТСу такой сложный способ?
Ведь на вопрос "Как сделать так, что бы НС догадалась, что от неё хотят." есть гораздо более простой ответ - сделать нейросеть-телепата.
0
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
28.03.2017, 16:44
Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
я не понимаю, как написать НС, которую можно, например, научить складывать два числа (хотя бы до 0 до 999).
Как идея представлять весь пример задачи как бинарную матрицу. Например “12+345” все в бинарную форму.
12 в 110
Придумать знаку “+” некий код например 1111
345 в 101 011 001
Тогда заполняем кодом например слева на право. Получим матрицу.
Название: ScreenShot00192.jpg
Просмотров: 62

Размер: 5.1 Кб
Тогда такая задачка превратиться в стандартную “распознать букву”.
Только вместо букв будут закодированы примеры.
Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
научить такую НС вычислять любую другую функцию, зависящую от двух чисел.
Точно также.

Но зачем это нужно? Искать сумму или функцию как обычно намного точней и быстрей
Чем учить нейросеть легиону примеров…
В моем представлении НС нужны для поиска неявных и нелинейных зависимостей без строгих правил.
А у вас все задачи с известными строгими законами. Вам тут НС просто вообще не нужна.
Нужно складывать? Так сложите как обычные числа. Тоже самое для функций.

А вот если вы дрожащей рукой напишите этот пример и нужно будет узнать в нем что это
“12+345” то да…тут и нужна НС + обучение.
0
1639 / 1542 / 256
Регистрация: 19.02.2010
Сообщений: 4,120
29.03.2017, 23:53
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Как идея представлять весь пример задачи как бинарную матрицу. Например “12+345” все в бинарную форму.
12 в 110
Тогда уж в (двоичный) код Грея.

И (в тему ИИшного раздела) можно ещё потребовать от нейросетки, чтобы ответ она выдавала не в виде чисел (пофиг - десятичных, двоичных и иных), а в виде текста. Как в анекдоте:

Пятилетняя дочка: 001,010,011,100,101.... Папа, а как дальше?
Папа-программист: Вышел зайчик погулять!
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
05.05.2017, 07:04
Для того чтобы научить нейронную сеть считать от 0 до 999 можно попробовать такой подход.
Вы можете принимать на вход два значения. Нейронная сеть должна уметь сначала переводить бинарные числа, например, в dec, - это будет её один блок. Если ошибка при выполнении операции преобразования в число (например буква) - то отправить алгоритм на блок распознавания букв и решение уравнений. Если ошибок нет, и имеется знак операции, то нейронная сеть может использовать "ХАК" - вычислить эти числа как простые.
Для начала понимания, что Вы хотите следует научиться делать сети, которые умеют складывать числа.
Вопрос №2 - как научить сеть складывать числа - не просто делать выборки, а именно использовать модель ИС для создания блоков, которые уже можно использовать для сложения - это очень интересная задача - не аппроксимация, а именно модельное решение.

Вы можете посмотреть идею здесь
https://habrahabr.ru/post/321642/
0
 Аватар для Ermit
-21 / 30 / 1
Регистрация: 25.04.2017
Сообщений: 356
05.05.2017, 16:56
До тех пор, пока числа будут идентификаторами, а не метрикой ничего ничему обучить не удастся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2017, 16:56
Помогаю со студенческими работами здесь

Составить функцию, которая для двух натуральных чисел
Составить функцию, которая для двух натуральных чисел a и b находит наибольший общий делитель, используя алгоритм Эвклида. Суть алгоритма в...

Написать рекурсивную функцию для умножения двух чисел
написать рекурсию для умножения двух чисел

Разработать функцию min(a,b) для нахождения минимального из двух чисел
Вычислить с помощью него минимальное значение из четырех x,y,z,v.

Вычислить используя функцию нахождения минимума для двух чисел
Вычислить Y=MIN(A,3B)*MIN(2A-B, 2B), используя функцию нахождения минимума для двух чисел.

Отладить функцию для сложения, вычитания, умножения и деления двух чисел
Не могу найти ошибок,программа не правильно работает. Вот условие : Напишите программу, которая использукет 4 функции. Каждая функция...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru