Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Нейросети и Искусственный интеллект (Artificial Intelligence) > вопросы новичка по нейросетям


Автор: root2lexS 05.03.18, 10:54
всем привет. смотрю раздел не особо популярен, но все же вопрос именно сюда, возможно кто-то и увидит и ответит. ну либо админ перенесет куда надо :))
собственно в машинном обучении я ноль. но для общего развития решил почитать без углубления прям в дебри. но сразу наткнулся на ряд вопросов
попробую их описать...
во всех статьях "для чайников" я встречаю описание типа как тут https://geektimes.ru/post/277088/
т.е. расписывается так, будто мы сами программируем каждый нейрон. назначаем ему какаую-то задачу.
на практике же все выглядит так: берем циклы, фигачим N нейронов в N слоях, наугад (или после сложных предварительных вычислений) указываем функцию возбуждения и т.д рандомно ставим веса и дальше учим-учим-учим.
отсюла вопрос первый: как на самом деле? или имеет место быть как ручное назначение буквально каждого нейрона к каждой опции так и "кинули сеть, обучили, посмотрели что не так, поменяли конфигурацию и обучили снова, и так пока не получится что надо"?
и второй вопрос: на что влияет количество нейронов в слое и количество слоев? и как оно выбирается? я так понимаю что количество слоев влияет на глубину дерева решений? или я не прав? собственно вроде как и то и то влияет на обучаемость сети (недо или пере). но как?
допустим рассмотрим простую задачу распознавания букв. получаем на вход картинку 10на20 пикселей. соотвественно будем делать 200 входных нейронов. и вроде как 33 выходных (по количеству букв). что же будет не скрытом слое? сколько слоев? на что они повлияют? сперва я думал что и нейронов в скрытом слое должно быть тоже 33 в один слой, т.к каждый будет "помнить" свою букву. но обучаться этим буквам они будут сами. но по факту можно обойтись и 5ю, и 500. а если я захочу чтобы распознавался еще и цвет? что мне делать? добавлять нейроны в слой? или слои?
вобщем если кто-то может вкратце объяснить или кинуть не талмут, а что-то краткое - буду рад почитать. спасибо

Автор: Pavia 05.03.18, 12:37
root2lexS
Цитата root2lexS @
т.е. расписывается так, будто мы сами программируем каждый нейрон. назначаем ему какаую-то задачу.

Ручное обучение было в 60-тых годах когда только изобрели нейронные сети. В частности однослойный Перцептро. Потом когда открыли обратное распространение ошибок в ручную сеть не настраивали, так как и так хватает забот.
Правда со структурой сети и способом обучением приходится колдовать и подбирать их вручную для получения лучшего результата.

В теории НС очень много импиреки. Организация и способ обучения подбирается вручную методом проб и ошибок. Есть и теория вполне обоснованная математически.
Но всё сводятся к тому что способ обучения и структуру сети подбирает человек методом проб и ошибок. Для каждой из задач проводятся конкурсы. Тем самым ищется лучший способ организации сети: ANN, RNN, CNN.

Цитата root2lexS @
и второй вопрос: на что влияет количество нейронов в слое и количество слоев? и как оно выбирается? я так понимаю что количество слоев влияет на глубину дерева решений? или я не прав?

Дерево решений это альтернативная технология.
То и то занимается разбиения входного множества данных на классы.

Если вы знаете математику, то 1 слойная сеть представляет собой матрицу. А матрица есть решение системы линейных уравнений - каждая линия разбивает входное множество на классы. С точки зрения теории оптимизации любую задачу мы можем линеаризовать. Другими словами достаточно 1 слоя и МНК для решения системы линейных уравнений. Выходит что слои это просто надувательство, пшик?
Но есть два НО.
1. Не все задачи сводятся к линейным.
2. Входные данные надо размножить - можно просо скопировать. А можно сделать входной слой который будет размножать данные на выходной слой. И того имеем 2 слоя. 2 слоя как-то не красиво. Все мечтают о 3-х мерной сети. Поэтому делают 3-5 слоев.
Только вот метод обратного распространения ошибки затыкается на большом числе слоёв. И плюс специфика у метода обратного распространения ошибки, что ему нужно несколько слоёв.

Зато ему на смену пришёл автокодировщик. Когда когда от слоя к слою уменьшается число нейронов в промежуточном слое. Есть ещё ряд разновидностей со стекируемыми нейронными сетями, когда убранные нейроны восполняются.

Цитата root2lexS @
допустим рассмотрим простую задачу распознавания букв. получаем на вход картинку 10на20 пикселей. соотвественно будем делать 200 входных нейронов. и вроде как 33 выходных (по количеству букв). что же будет не скрытом слое? сколько слоев? на что они повлияют?

В 2000-году в распознавание рукописных букв совершили скачок так называемые корреляционные нейронные сети. Там всё просто первый слой сжимает по горизонтали и вертикали в 2 раза. Затем припомощи математического аппарата "свёртки" пиксели смещаются в бок либо гасятся и засвечиваются - тем самым свёртка корректирует возможные локальные возмущения, искажении формы, шумы. Затем ещё сжимается в 2 раза. А после снова корректируются искажения. А затем когда в сжатие дошли до придела применяется классическая ANN.
По сути разновидность автокодировщика, только закодированного вручную.

Цитата root2lexS @
что мне делать? добавлять нейроны в слой?

Добавить нейроны.

Цитата root2lexS @
собственно вроде как и то и то влияет на обучаемость сети (недо или пере). но как?

Почитайте: http://www.ccas.ru/voron/download/NeuralNets.pdf

Автор: root2lexS 05.03.18, 13:33
Pavia спасибо за подробный развернутый ответ.

Цитата Pavia @
1 слойная сеть представляет собой матрицу.

Цитата Pavia @
И того имеем 2 слоя

сразу хочу уточнить, как вы считаете слои? встречаю везде по-разному. кто-то счиает входной слой, кто не считает, кто-то считает выходной слой, кто-то нет. я когда говорю об однослойной - подразумеваю 3 слоя, с одним скрытым. т.е вход, скрытый слой с одним слоем внутри, и выход.

Автор: esperanto 05.04.18, 21:42
Возможно вам поможет книга элементарное введение в теорию нейронных сетей

Автор: Betelgeuse 27.09.23, 07:45
Цитата
Возможно вам поможет книга элементарное введение в теорию нейронных сетей

Нет, лучше "Нейронные сети для крайних народов Севера М: 1956г"

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)