Содержание статьи
Алгоритм создания и обучения своей первой нейронной сети
Формула для расчета выхода нейрона
Но нейронные сети — все же не человеческий мозг. Мозг сложнее, объемнее, в нем намного больше нейронов, чем в любой компьютерной нейросети. Поэтому чрезмерное обучение может сделать хуже. Например, переобученная нейросеть может начать распознавать предметы там, где их нет — так люди иногда видят лица в фарах машин и принимают пакеты за котов. А в случае с искусственной нейронной сетью такой эффект еще явнее и заметнее. Если же учить нейросеть на нескольких разнородных данных, скажем, сначала обучить считать числа, а потом — распознавать лица, она просто сломается и начнет работать непредсказуемо. Для таких задач нужны разные нейросети, разные структуры и связи.
Сегодня нейронные сети для обработки информации применяют там, где требуется распознавать образы, анализировать данные, оптимизировать процесс обработки, принимать решения и строить прогнозы. Их применяют, чтобы «узнавать» и обрабатывать изображения, распознавать и синтезировать речь, преобразовывать ее в текст, создавать системы навигации и контроля для промышленных роботов и беспилотных машин.
С точки зрения математики задача искусственного нейрона – суммировать все сигналы, а затем применять к полученной взвешенной сумме простую нелинейную функцию. Она непрерывна по всей области и монотонно возрастает. Результат, который получается в итоге, направляется на один выход – аксон.
Разберемся, как создать простейшую нейронную сеть на ПК и чему-нибудь ее научить. Для тренировки, чтобы создать свою нейросеть онлайн, обратимся к образовательному проекту Google — Teachable Machine. Здесь есть простые инструменты создания моделей машинного обучения нейронных сетей для неопытных чайников.
Программа прогоняет входные фото через нейросеть, создавая bottleneck – файлы текстового типа, в которых содержатся данные о картинках. Спустя несколько десятков минут процесс завершается. Иерархические нейронные сети могут распознать на любых картинках цветы, фото которых удалось прогнать через ПК.
Лучше обучение. Искусственные нейронные сети обучаются примерно по тому же принципу, что живые существа. Когда человек часто повторяет одни и те же действия, он учится: ездить на велосипеде, рисовать или набирать текст. Это происходит, потому что веса между нейронами в мозгу меняются: нервные клетки наращивают новые связи, по-новому начинают воспринимать сигналы и правильнее их передают. Нейронная сеть тоже изменяет веса при обучении — чем оно объемнее, тем сильнее она «запомнит» какую-то закономерность.
Человеческий мозг состоит из ста миллиардов клеток, которые называются нейронами. Они соединены между собой синапсами. Если через синапсы к нейрону придет достаточное количество нервных импульсов, этот нейрон сработает и передаст нервный импульс дальше. Этот процесс лежит в основе нашего мышления. Мы можем смоделировать это явление, создав нейронную сеть с помощью компьютера. Нам не нужно воссоздавать все сложные биологические процессы, которые происходят в человеческом мозге на молекулярном уровне, нам достаточно знать, что происходит на более высоких уровнях. Для этого мы используем математический инструмент — матрицы, которые представляют собой таблицы чисел. Чтобы сделать все как можно проще, мы смоделируем только один нейрон, к которому поступает входная информация из трех источников и есть только один выход. 3 входных и 1 выходной сигнал Наша задача — научить нейронную сеть решать задачу, которая изображена в ниже. Первые четыре примера будут нашим тренировочным набором. Получилось ли у вас увидеть закономерность? Что должно быть на месте вопросительного знака — 0 или 1?
В том же 1943-ем ученые У. МакКалок и У. Питтс ввели понятие «нейронная сеть» и дали ему определение в публикации, где шла речь о нервной активности и логическом исчислении идей. Предложенная модель впоследствии была названа «моделью МакКаллока-Питтса» и развита другим ученым – Клини.
Что такое искусственная нейронная сеть?
Рукотворные нейросети обладают способностью к обучению и анализу больших сложных данных, неполной и зашумленной информации. Если сеть создается на базе всего одного компьютера, то скорость ее работы ниже, чем у программ, построенных на алгоритмах. Но при использовании нескольких компьютеров формируется параллельная вычислительная среда, благодаря чему быстродействие нейросети значительно возрастает. Это позволяет ИНС выигрывать у линейных прототипов – цифровых компьютеров, при обработке непрерывных крупных потоков сведений, например, для распознавания речи.
Суть сводилась к тому, что нейронная сеть способна к выполнению любых логических операций и преобразований, которые генерируются в дискретных устройствах, обладающих конечной памятью. Таким образом создатели модели дали формулировку основным положениям работы головного мозга. Ученые создали 1-ую модель нейрона, который, по их мнению, является простейшим процессорным элементом. МакКаллок и Питтс предложили свой вариант конструкции такой сети, состоящей из таких элементов, чтобы она могла решать арифметические и логические задачи. Авторы предположили, что такую сеть можно научить распознаванию образов и обобщению полученных данных. Этот принцип действия моделей нейронов в искусственной сети актуален и сегодня.
Например, на вход поступает картинка. Чтобы нейросеть могла понять, что на ней изображено, она должна выделить разные элементы из картинки, распознать их и подумать, что означает сочетание этих элементов. Примерно так работает зрительная кора в головном мозге. Это несколько задач, их не смогут решить одинаковые нейроны. Поэтому нужно несколько слоев, где каждый делает что-то свое. Для распознавания часто используют так называемые сверточные нейросети. Они состоят из комбинации сверточных и субдискретизирующих слоев, каждый из которых решает свою задачу.
Объединяясь между собой, искусственные нейроны формируют нейронную сеть. У каждого свое текущее состояние, как это происходит с клетками головного мозга животных, то есть нейроны могут возбуждаться и затормаживаться. Определяют состояние по взвешенной сумме входов .
Настройка обучения нейронной сети начинается с группировки примеров. Это могут быть готовые файлы либо живая запись на камеру в ноутбуке или ПК. Например, если нажать на кнопку «Train Green», сервис сделает несколько десятков снимков, таким образом находя закономерность. Набор снимков называется «датасет».
Еще есть, например, метод обратного распространения ошибки — градиентный алгоритм для многослойных нейросетей. Сигналы ошибки, рассчитанные с помощью градиента, распространяются от выхода нейронной сети к входу, то есть идут не в прямом, а в обратном направлении.