Нейросеть — это компьютерная программа, способная к учебе. Перед ней можно поставить почти любую цель. И в случае если сначала показать автомашине тысячу-другую правильных решений, то после этого она обучится считать правильный ответ самостоятельно.
За нейронными сетями стоит трудная математика, при этом модель компьютерной сети сконструирована по механизму работы нервных клеток человека, другими словами химических нейронных сетей. В целом всю данную арифметику легче всего пояснить в картинах.
Перед вами двадцать иллюстраций. Человек без усилий выяснит на всех 10-ти цифру 6. Для машины же это набор абсолютно разных фотографий, никоим образом не сопряженных между собой. Что помогает человеку узнать «шестерку»? Контекст и опыт.
Контекст помогает нам разобрать даже почерк врача: если на месте буквы появляется необычный крест, мы осознаем, что это, вероятно, «т» или «к». Пока, ПК на данный момент недостаточно что понимают в контексте. Но несмотря на это опыта они набираются намного стремительней людей. Укажите нейронной сети тысячу писаных чисел, и она обучится их отличать.
На месте чисел вполне может быть что угодно: кошки, лица, онкологические опухоли. Речь в данном случае идет не обязательно об фотографиях: научить платформу можно на биржевых сводках, образных текстах, аудиозаписях — любых оцифрованных данных. А до того, чем учить, давайте разберемся с матчастью — какие виды строений нейронных сетей есть.
Нейронные сети непосредственного распространения или FFNN (от английского Feed Форвард Neural Networks) имеют 2 входные клетки и всего одну выходную.
Обучение проводится по принципу обратного распространения ошибки между вводом и выводом, что подразумевает дееспособность сети имитировать связь между входными и выходными пластами, генерируя установленный итог. FFNN используются для узнавания речи, письменных знаков, фотографий и компьютерного зрения.
Сети радиально-базисныx функций (RBFN, radial basis function network) владеют такой же текстурой, что и ранние с той только разницей, что для активации используется радиально-базисная функция. Данная ИНС (синтетическая нейронная сеть) находит применение для решения задач аппроксимации, и систематизации и вывода кратковременных рядов.
Нейронная сеть Хопфилда (HN, Hopfield network) характеризуется симметрией матрицы возникающих нитей. Это значит, что увольнение, правильнее вход и выход данных проводится в рамках одного и такого же участка. Данная нейронная сеть также имеет наименование сеть с соединяющей памятью — в ходе обучения она запоминает некоторые шаблоны и потом возвращается к одному из них.
Автоэнкодер (Autoencoder) — сеть непосредственного распространения, которая может возрождать входные данные на узле исхода. Аналогичная конструкция используется для систематизации данных, сжатия и восстановления информации.
Сверточные нейронные сети (CNN, convolutional neural networks) основное применение обнаружили в сфере распознания фотографий.
Технология их работы состоит в том, что она считывает изображения незначительными квадратами, затем сообщает информацию через сверточные слои.
Здравым продолжением операции становится подключение FFNN, выдающие установленный итог на основе приобретенных данных (так сверточные нейронные сети делаются глубокими). Если на обрабатываемых картинах изображена мышь, то сети резюмируют данный факт.
Развертывающие нейронные сети (DN, deconvolutional networks), насколько можно судить исходя из их наименования, владеют обратным к CNN действием.
Например адресуемся к помощи полученной выше мыши. Если необходимо, наоборот, создать или отыскать иллюстрации со снимком грызуна, для старта функции активации DN довольно одного этого слова, правильнее, установленного бинарного вектора.
Генеративно-состязательные сети (GAN, Generative Adversarial Network) применяются для полного копирования цифровых данных, к примеру, фотографий. Применение GAN обнаружили в сфере кибербезопасности. Еще с помощью их можно назначить на фотографии эффект старения.
Перейдем к сооружению и учебе нейронных сетей. Поделим изображение на точки (пиксели): 30 по высоте и 30 по вертикали. Каждый из точек имеет свою контрастность. Пускай темные пиксели имеют значение 0, белые — 1, а градации серого дают малые значения, к примеру 0,4 или 0,8. Эти 900 точек — наши первые нейроны, вернее нейроны входного пласта, или детекторы.
Концептуально нейроны воспроизводят клетки жизненного головного мозга. Как и для истинных нейронов, для компьютерных также актуальны связи. Каждый нитрон сопряжен со всеми нейронами примыкающего пласта.
Взглянем на первый нитрон промежуточного пласта (представим его b1). Он сопряжен с каждым из 900 нейронов входного пласта (представим их a1 — a900). Фактически, нитрон b1 — это математическая формула, долгая, а достаточно простая. Она демонстрирует, насколько сильно каждый из детекторов a1 — a900 оказывает влияние на значение b1.
Соединяющие слои. Так вот, процесс машинного обучения нацелен на то, чтобы дать всем взаимосвязям внутри синтетической нейронной сети подходящие веса. Для чего нужны промежуточные слои? Выражаясь весьма фигурально, они помогают автомашине обобщить скопленный опыт. Проведем духовный опыт. Как мы, люди, выясним шестерку? Она состоит из кружочка и «хвостика» справа наверху.
Предположим, что предпоследний (2-й сокрытый) пласт нейронной сети разбирается во обоюдном размещении кружочков, «хвостиков» и «крючочков», из которых заключаются числа.
А первый сокрытый пласт может акцентировать на иллюстрации сами кружочек и «хвостики» по соединению точек. Если б говорилось о нашей логике, то тайные слои представляли бы собой различные значения абстракции и обобщения.
Активация нейронов. Пустим нашу нейросеть: расставим веса в случайном порядке, продемонстрируем детекторам шестерку и взглянем, какой из выходных нейронов активизируется. Под активацией имеется ввиду превышение некоего порогового значения. К примеру, если формула нейрона выдает итог больше 0,8, то он «загорается», или активизируется.
Вполне возможно, что при 1-м запуске «загорелось» несколько реагирующих нейронов. Машина «признала» в шестерке и 8, и 2, и 3, и все эти итоги не имеют никакого отношения к правде. Нейросеть еще предстоит научить. Заглядывайте на сайт smittmediagroup.ru сли нужно будет больше информации про нейросети.
Смышленое реверсивное. Если бы вес любой связи искали элементарным перебором, процесс занял бы бесконечность. Снижает путь основное изобретение машинного обучения — способ обратного распространения ошибки. Способ обратного распространения дает возможность нейронной сети, будто изобретательному подростку, подхлестнуть значения неустойчивых в уравнении, понимая правильный ответ.
Взглянем, насколько приобретенный в 1-й итерации итог отличается от нужного. Предположим, нитрон, означающий единицу, получил значение 0,08.
Это недостаточно, как и должно быть, так как на входе не единица. Значит, веса для нитей, присоединенных к данному нейрону, необходимо изменить немного. А нитрон, соответствующий за восьмерку, «загорелся» и продемонстрировал итог 0,9. Это никуда не подходит: семерка не шестерка. Значит, связи этого нейрона нуждаются в сильной коррекции.
Градиентный спуск. Говоря немного более точным языком, каждый набор нейронов есть функция от большого количества неустойчивых — весов нейронов, стоящих за ним. Для одного выходного нейрона — того, что отвечает за шестерку, — нам необходимо отыскать минимум данной функции. Для всех других — максимумы.
Представьте, что вам необходимо отыскать кошелек, потерявшийся в бору. Систематически обследовать весь лес — почти неосуществимая цель.
Но в случае если что-нибудь дает подсказку вам направление движения и сохранившееся отдаление до виртуального кошелька, отыскать его будет значительно легче.
Вы сначала разгонитесь до повышенной скорости, а подойдя к разыскиваемому субъекту, замедлитесь и поищете заботливее. Такая технология поиска в математике называется градиентным спуском. А маячок, на который вы разбираетесь, появляется благодаря способу обратного распространения ошибки.
Обучение на датасетах. Посчитав, насколько сильно значения всех нейронов отличаются от желанных, мы приобретем итоговую ошибку сети.
Отыскать ее максимум было бы довольно, если б мы планировали обучить такую сеть различать шестерку от прочих чисел. Чтобы машина могла узнавать любую цифру, необходимо каждый раз показывать ей датасет (набор data, другими словами данных) из 10-ти чисел и стремится минимизировать среднюю ошибку для всех 10-ти. Неприятность задачи строится в 10-ую степень.
Чтобы нейросеть обучилась узнавать числа, написанные различным почерком, необходимо показать ей большое количество писаных цифровых комплектов.
И сделать большое количество вычислений, чтобы отыскать подходящие средние значения для всех весов. Это ресурсоемкая цель — как по вычисляемой производительности, так и в плане подготовки большого датасета. А итог того стоит.

Январь 22nd, 2025
raven000
Опубликовано в рубрике