Сопоставление задач и примеров использования нейронных сетей

Применение нейронных сетей для задач классификации

Решение задачи классификации является одним из важнейших применений нейронных сетей.

Задача классификации представляет собой задачу отнесения образца к одному из нескольких попарно не пересекающихся множеств.

Примером таких задач может быть, например, задача определения кредитоспособности клиента банка, медицинские задачи, в которых необходимо определить, например, исход заболевания, решение задач управления портфелем ценных бумаг (продать купить или “придержать” акции в зависимости от ситуации на рынке), задача определения жизнеспособных и склонных к банкротству фирм.

Цель классификации

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

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

Например, для медицинских задач в качестве компонентов этого вектора могут быть данные из медицинской карты больного. Таким образом, на основании некоторой информации о примере, необходимо определить, к какому классу его можно отнести.

Обратите внимание

Классификатор таким образом относит объект к одному из классов в соответствии с определенным разбиением N-мерного пространства, которое называется пространством входов, и размерность этого пространства является количеством компонент вектора.

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

Первый (самый простой) – когда классы можно разделить прямыми линиями (или гиперплоскостями, если пространство входов имеет размерность больше двух) – так называемая линейная разделимость.

Во втором случае классы невозможно разделить линиями (плоскостями), но их возможно отделить с помощью более сложного деления – нелинейная разделимость. В третьем случае классы пересекаются и можно говорить только о вероятностной разделимости.

В идеальном варианте после предварительной обработки мы должны получить линейно разделимую задачу, так как после этого значительно упрощается построение классификатора.

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

При этом мы не можем провести такую предобработку данных, при которой будет достигнута линейная разделимость образцов.

Использование нейронных сетей в качестве классификатора

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

К сожалению, в применении нейронных сетей в практических задачах возникает ряд проблем. Во-первых, заранее не известно, какой сложности (размера) может потребоваться сеть для достаточно точной реализации отображения. Эта сложность может оказаться чрезмерно высокой, что потребует сложной архитектуры сетей.

Так Минский в своей работе “Персептроны” доказал, что простейшие однослойные нейронные сети способны решать только линейно разделимые задачи. Это ограничение преодолимо при использовании многослойных нейронных сетей.

Важно

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

Таким образом сеть распознает не только характеристики исходных данных, но и “характеристики характеристик”, сформированные скрытым слоем.

Подготовка исходных данных

Для построения классификатора необходимо определить, какие параметры влияют на принятие решения о том, к какому классу принадлежит образец. При этом могут возникнуть две проблемы.

Во-первых, если количество параметров мало, то может возникнуть ситуация, при которой один и тот же набор исходных данных соответствует примерам, находящимся в разных классах. Тогда невозможно обучить нейронную сеть, и система не будет корректно работать (невозможно найти минимум, который соответствует такому набору исходных данных).

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

Но при увеличении размерности пространства признаков может возникнуть ситуация, когда число примеров может стать недостаточным для обучения сети, и она вместо обобщения просто запомнит примеры из обучающей выборки и не сможет корректно функционировать. Таким образом, при определении признаков необходимо найти компромисс с их количеством.

Далее необходимо определить способ представления входных данных для нейронной сети, т.е. определить способ нормирования. Нормировка необходима, поскольку нейронные сети работают с данными, представленными числами в диапазоне 0..

1, а исходные данные могут иметь произвольный диапазон или вообще быть нечисловыми данными.

При этом возможны различные способы, начиная от простого линейного преобразования в требуемый диапазон и заканчивая многомерным анализом параметров и нелинейной нормировкой в зависимости от влияния параметров друг на друга.

Кодирование выходных значений

Задача классификации при наличии двух классов может быть решена на сети с одним нейроном в выходном слое, который может принимать одно из двух значений 0 или 1, в зависимости от того, к какому классу принадлежит образец. При наличии нескольких классов возникает проблема, связанная с представлением этих данных для выхода сети.

Наиболее простым способом представления выходных данных в таком случае является вектор, компоненты которого соответствуют различным номерам классов. При этом i-я компонента вектора соответствует i-му классу. Все остальные компоненты при этом устанавливаются в 0. Тогда, например, второму классу будет соответствовать 1 на 2 выходе сети и 0 на остальных.

При интерпретации результата обычно считается, что номер класса определяется номером выхода сети, на котором появилось максимальное значение. Например, если в сети с тремя выходами мы имеем вектор выходных значений (0.2,0.6,0.

4), то мы видим, что максимальное значение имеет вторая компонента вектора, значит класс, к которому относится этот пример, – 2. При таком способе кодирования иногда вводится также понятие уверенности сети в том, что пример относится к этому классу.

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

Например, для рассмотренного выше примера уверенность сети в том, что пример относится ко второму классу, определится как разность между второй и третьей компонентой вектора и равна 0.6-0.4=0.2. Соответственно чем выше уверенность, тем больше вероятность того, что сеть дала правильный ответ. Этот метод кодирования является самым простым, но не всегда самым оптимальным способом представления данных.

Известны и другие способы. Например, выходной вектор представляет собой номер кластера, записанный в двоичной форме. Тогда при наличии 8 классов нам потребуется вектор из 3 элементов, и, скажем, 3 классу будет соответствовать вектор 011.

Совет

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

Другой подход состоит в разбиении задачи с k классами на k*(k-1)/2 подзадач с двумя классами (2 на 2 кодирование) каждая. Под подзадачей в данном случае понимается то, что сеть определяет наличие одной из компонент вектора. Т.е.

исходный вектор разбивается на группы по два компонента в каждой таким образом, чтобы в них вошли все возможные комбинации компонент выходного вектора.

Число этих групп можно определить как количество неупорядоченных выборок по два из исходных компонент. Из комбинаторики

$A_k^n = frac{k!}{n!,(k,-,n)!} = frac{k!}{2!,(k,-,2)!} = frac{k,(k,-,1)}{2}$

Тогда, например, для задачи с четырьмя классами мы имеем 6 выходов (подзадач) распределенных следующим образом:

N подзадачи(выхода)КомпонентыВыхода
1 1-2
2 1-3
3 1-4
4 2-3
5 2-4
6 3-4

Где 1 на выходе говорит о наличии одной из компонент. Тогда мы можем перейти к номеру класса по результату расчета сетью следующим образом: определяем, какие комбинации получили единичное (точнее близкое к единице) значение выхода (т.е. какие подзадачи у нас активировались), и считаем, что номер класса будет тот, который вошел в наибольшее количество активированных подзадач (см. таблицу).

N классаАкт. Выходы
1 1,2,3
2 1,4,5
3 2,4,6
4 3,5,6

Это кодирование во многих задачах дает лучший результат, чем классический способ кодирование.

Выбор объема сети

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

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

Обратите внимание

При деструктивном подходе вначале берется сеть завышенного объема, и затем из нее удаляются узлы и связи, мало влияющие на решение. При этом полезно помнить следующее правило: число примеров в обучающем множестве должно быть больше числа настраиваемых весов.

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

Выбор архитектуры сети

При выборе архитектуры сети обычно опробуется несколько конфигураций с различным количеством элементов. При этом основным показателем является объем обучающего множества и обобщающая способность сети. Обычно используется алгоритм обучения Back Propagation (обратного распространения) с подтверждающим множеством.

Алгоритм построения классификатора на основе нейронных сетей

  1. Работа с данными
    • Составить базу данных из примеров, характерных для данной задачи
    • Разбить всю совокупность данных на два множества: обучающее и тестовое (возможно разбиение на 3 множества: обучающее, тестовое и подтверждающее).
  2. Предварительная обработка
    • Выбрать систему признаков, характерных для данной задачи, и преобразовать данные соответствующим образом для подачи на вход сети (нормировка, стандартизация и т.д.). В результате желательно получить линейно отделяемое пространство множества образцов.
    • Выбрать систему кодирования выходных значений (классическое кодирование, 2 на 2 кодирование и т.д.)
  3. Конструирование, обучение и оценка качества сети
    • Выбрать топологию сети: количество слоев, число нейронов в слоях и т.д.
    • Выбрать функцию активации нейронов (например “сигмоида”)
    • Выбрать алгоритм обучения сети
    • Оценить качество работы сети на основе подтверждающего множества или другому критерию, оптимизировать архитектуру (уменьшение весов, прореживание пространства признаков)
    • Остановится на варианте сети, который обеспечивает наилучшую способность к обобщению и оценить качество работы по тестовому множеству
  4. Использование и диагностика
    • Выяснить степень влияния различных факторов на принимаемое решение (эвристический подход).
    • Убедится, что сеть дает требуемую точность классификации (число неправильно распознанных примеров мало)
    • При необходимости вернутся на этап 2, изменив способ представления образцов или изменив базу данных.
    • Практически использовать сеть для решения задачи.

Для того, чтобы построить качественный классификатор, необходимо иметь качественные данные. Никакой из методов построения классификаторов, основанный на нейронных сетях или статистический, никогда не даст классификатор нужного качества, если имеющийся набор примеров не будет достаточно полным и представительным для той задачи, с которой придется работать системе.

Источник: https://basegroup.ru/community/articles/classification

7 архитектур нейронных сетей для решения задач NLP

Искусственная нейронная сеть (ИНС) — вычислительная нелинейная модель, в основе которой лежит нейронная структура мозга, способная обучаться выполнению задач классификации, предсказания, принятия решений, визуализации и некоторых других только благодаря рассмотрению примеров.

Любая архитектура ИНС состоит из искусственных нейронов — элементов обработки, имеющих структуру 3 связанных друг с другом слоев: входным, состоящим из одного или более слоев скрытым и выходным.

Входной слой состоит из входных нейронов, которые передают информацию в скрытый слов. Скрытый слой в свою очередь передает информацию в выходной. Каждый нейрон имеет входы с весами — синапсами, функцию активации, определяющую выходную информацию при заданной входной, и один выход. Синапсы — регулируемые параметры, конвертирующие нейронную сеть в параметризованную систему.

Искусственная нейронная сеть с 4 входами

Функция активации

Взвешенная сумма со входов — активационный сигнал — проходит через функцию активации для вывода данных из нейрона. Есть несколько видов функции активации: линейная, ступенчатая, сигмоидная, тангенциальная, выпрямительная (Rectified linear unit, ReLu).

Читайте также:  Меры безопасности, способные защитить нас от искусственного интеллекта

Линейная функция

f(x)=ax

Ступенчатая функция

Сигмоида

Функция гиперболического тангенса

Функция линейного выпрямителя

Обучение (или тренировка) — процесс оптимизации весов, в котором минимизируется ошибка предсказания, и сеть достигает требуемого уровня точности. Наиболее используемый метод для определения вклада в ошибку каждого нейрона — обратное распространение ошибки, с помощью которого вычисляют градиент. Это одна из модификаций метода градиентного спуска.

С помощью дополнительных скрытых слоев возможно сделать систему более гибкой и мощной. ИНС с многими скрытыми слоями называются глубокими нейронными сетями (deep neural network, DNN); они создают сложные нелинейные связи.

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

1. Многослойный перцептрон

Перцептрон

Многослойный перцептрон состоит из 3 или более слоев.

Он использует нелинейную функцию активации , часто тангенциальную или логистическую, которая позволяет классифицировать линейно неразделимые данные.

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

2. Сверточная нейронная сеть

Сверточная нейронная сеть (Convolutional neural network, CNN) содержит один или более объединенных или соединенных сверточных слоев.

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

Эта операция позволяет сети быть глубже с меньшим количеством параметров.

Сверточные сети показывают выдающиеся результаты в приложениях к картинкам и речи. В статье Convolutional Neural Networks for Sentence Classification автор описывает процесс и результаты задач классификации текста с помощью CNN. В работе представлена модель на основе word2vec, которая проводит эксперименты, тестируется на нескольких бенчмарках и демонстрирует блестящие результаты.

В работе Text Understanding from Scratch авторы показывают, что сверточная сеть достигает выдающихся результатов даже без знания слов, фраз предложений и любых других синтаксических или семантических структур присущих человеческому языку. Семантический разбор, поиск парафраз, распознавание речи — тоже приложения CNN.

3. Рекурсивная нейронная сеть

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

4. Рекуррентная нейронная сеть

Рекуррентная нейронная сеть, в отличие от прямой нейронной сети, является вариантом рекурсивной ИНС, в которой связи между нейронами — направленные циклы. Последнее означает, что выходная информация зависит не только от текущего входа, но также от состояний нейрона на предыдущем шаге.

Такая память позволяет пользователям решать задачи NLP: распознание рукописного текста или речи.

В статье Natural Language Generation, Paraphrasing and Summarization of User Reviews with Recurrent Neural Networks авторы показывают модель рекуррентной сети, которая генерирует новые предложения и краткое содержание текстового документа.

Siwei Lai, Liheng Xu, Kang Liu, и Jun Zhao в своей работе Recurrent Convolutional Neural Networks for Text Classification создали рекуррентную сверточную нейросеть для классификации текста без рукотворных признаков.

Модель сравнивается с существующими методами классификации текста — Bag of Words, Bigrams + LR, SVM, LDA, Tree Kernels, рекурсивными и сверточными сетями.

Описанная модель превосходит по качеству традиционные методы для всех используемых датасетов.

5. LSTM

LSTM блок с входным, выходным и гейтом забывания

Сеть долгой краткосрочной памяти (Long Short-Term Memory, LSTM) — разновидность архитектуры рекуррентной нейросети, созданная для более точного моделирования временных последовательностей и их долгосрочных зависимостей, чем традиционная рекуррентная сеть.

LSTM-сеть не использует функцию активации в рекуррентных компонентах, сохраненные значения не модифицируются, а градиент не стремится исчезнуть во время тренировки. Часто LSTM применяется в блоках по несколько элементов.

Эти блоки состоят из 3 или 4 затворов (например, входного, выходного и гейта забывания), которые контролируют построение информационного потока по логистической функции.

В Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling авторы показывают архитектуру глубокой LSTM рекуррентной сети, которая достигает хороших результатов для крупномасштабного акустического моделирования.

Источник: https://neurohive.io/ru/osnovy-data-science/7-arhitektur-nejronnyh-setej-nlp/

Методы классификации и прогнозирования. Нейронные сети

Аннотация: В лекции описывается метод нейронных сетей. Рассмотрены элементы и архитектура, процесс обучения и явление переобучения нейронной сети. Описана такая модель нейронной сети как персептрон. Приведен пример решения задачи при помощи аппарата нейронных сетей.

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

Нейронные сети (Neural Networks) – это модели биологических нейронных сетей мозга, в которых нейроны имитируются относительно простыми, часто однотипными, элементами (искусственными нейронами).

Важно

Нейронная сеть может быть представлена направленным графом с взвешенными связями, в котором искусственные нейроны являются вершинами, а синаптические связи – дугами.

Нейронные сети широко используются для решения разнообразных задач.

Среди областей применения нейронных сетей – автоматизация процессов распознавания образов, прогнозирование, адаптивное управление, создание экспертных систем, организация ассоциативной памяти, обработка аналоговых и цифровых сигналов, синтез и идентификация электронных цепей и систем.

С помощью нейронных сетей можно, например, предсказывать объемы продаж изделий, показатели биржевого рынка, выполнять распознавание сигналов, конструировать самообучающиеся системы.

Модели нейронных сетей могут быть программного и аппаратного исполнения. Мы будем рассматривать сети первого типа.

Если говорить простым языком, слоистая нейронная сеть представляет собой совокупность нейронов, которые составляют слои. В каждом слое нейроны между собой никак не связаны, но связаны с нейронами предыдущего и следующего слоев. Информация поступает с первого на второй слой, со второго – на третий и т.д.

Среди задач Data Mining, решаемых с помощью нейронных сетей, будем рассматривать такие:

  • Классификация (обучение с учителем). Примеры задач классификации: распознавание текста, распознавание речи, идентификация личности.
  • Прогнозирование. Для нейронной сети задача прогнозирования может быть поставлена таким образом: найти наилучшее приближение функции, заданной конечным набором входных значений (обучающих примеров). Например, нейронные сети позволяют решать задачу восстановления пропущенных значений.
  • Кластеризация (обучение без учителя). Примером задачи кластеризации может быть задача сжатия информации путем уменьшения размерности данных. Задачи кластеризации решаются, например, самоорганизующимися картами Кохонена. Этим сетям будет посвящена отдельная лекция.

Рассмотрим три примера задач, для решения которых возможно применение нейронных сетей.

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

Прогнозирование показателей деятельности фирмы (объемы продаж). На основе ретроспективной информации о деятельности организации возможно определение объемов продаж на будущие периоды.

Предоставление кредита. Используя базу данных о клиентах банка, применяя нейронные сети, можно установить группу клиентов, которые относятся к группе потенциальных “неплательщиков”.

Источник: http://www.intuit.ru/studies/courses/6/6/lecture/178

Основы нейронных сетей. Задачи нейронных сетей

В 80-х годах ХХ века в число известных принципов программирования вошло новое направление разработок информационных систем, которое получило название искусственных нейронных систем.

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

Указанный подход иногда вспоминают под названием коннекционизма (от английского слова connection — соединение).

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

Совет

Конфигурация нейронной сети настраивается на реализацию конкретного приложения с помощью процесса усвоения знаний, т.е. обучение.

При этом, подобно биологическим системам, обучение предусматривает внесение изменений в характеристики синаптических соединений между нейронами.

Предусмотрено много способов классификации искусственных нейронных систем.

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

Если учебная совокупность предусмотрена, то искусственная нейронная система называется основанной на контролируемой модели. В противном случае модель считается неконтролируемой.

Пример нейронной сети

Хорошим примером контролируемой искусственной нейронной системы является система, используемая для распознавания образов.

В отличие от нее, в случаях, когда точно не известно какими должны быть исходные данные, искусственная нейронная система может быть применена как классификатор для группировки входных данных.

Например, распознавание больных и здоровых людей в случае обнаружения вспышек заболевания.

Классификация нейронных сетей

Нейронные сети также могут классифицироваться по следующим характеристикам:

  • способа соединения нейронов;
  • применение вычислений, выполняющих нейроны;
  • способа передачи шаблонов активности по сети;
  • способа и скорости обучения.

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

Имеются в виду задачи, которые не имеют алгоритмического решения или, для которых алгоритмическое решение является очень сложным, чтобы его можно было определить аналитически.

Собственно говоря, нейронные сети хорошо подходят для решения задач, которые успешно решают люди, но не могут объяснить, как они это делают.

Задачи нейронных сетей

К числу задач нейронных систем относятся задачи распознавания образов и прогнозирования событий, в частности, нахождение тенденции изменения данных.

В нынешние времена искусственный интеллект на основе нейронных сетей широко используется при анализе скрытых закономерностей для выявления в исторических данных таких шаблонов, которыми можно руководствоваться в будущем.

Например, анализ скрытых закономерностей в данных может применяться в банковском учреждении для определения характеристик потенциального злоумышленника среди заемщиков.

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

В частности, в 1980-х годах нейронная сеть, которая эксплуатировалась на обычном микрокомпьютере, позволила получить очень качественное решение задачи коммивояжера за 0,1 секунды.

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

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

Обратите внимание

Задача поиска оптимальных маршрутов является важным средством минимизации времени, поскольку от этого зависят эффективность и быстродействие, как при маршрутизации пакетов данных через Интернет, так и при доставке посылок почтой многочисленным адресатам.

(Пока оценок нет)
Загрузка…

Источник: https://LibTime.ru/expertsystems/osnovy-neyronnyh-setey-zadachi-neyronnyh-setey.html

Еще одна сфера применения машинного обучения и нейронных сетей | World-X

Искусственные нейронные сети сегодня считаются одной из наиболее интересных и многообещающих сфер знаний. Одна из их главных особенностей – способность обучаться – открывает широкие перспективы для развития искусственного интеллекта и проникновения в различные области жизнедеятельности общества.

Так, нейросети используются в медицине, экономике и различных сферах информационных технологий. Машинное обучение применяет алгоритмы ранжирования поисковых алгоритмов, механизмы распознавания речи и жестов.

А специалисты компании Winperst направили потенциал нейронных сетей на повышение быстродействия и производительности ОС Windows 10.

В чем польза и возможности применения нейронных сетей?

Если вкратце, то нейросети способны находить решения тем задачам, при которых другие известные науке программные алгоритмы беспомощны. Чтобы разобраться в вопросе рассмотрим истоки предметной области.

Компьютеры благодаря своим вычислительным возможностям способны решать разные задачи. Но тут многое зависит от сложности проблематики. Последнюю можно разделить на 3 группы – легкие (простые), средние и трудные (высокая сложность). Простые задачи известные сегодня программные алгоритмы решают без проблем. К их числу относится:

  • математические вычисления;
  • вывод данных на экран;
  • отправка команды сканеру.

С этими задачами справляются простейшие компьютерные программы.

Задачи средней сложности уже решить сложнее. Специальному ПО, использующему статистические методы и инструменты математического анализа под силу такое:

  • определить погрешность;
  • сделать простейший прогноз на основании исчерпывающих исходных данных;
  • решить сложное уравнение.

Но есть и еще более сложные задачи, которые недавно не имели программного решения:

  • распознавание образов;
  • сложные прогнозы;
  • определение закономерностей на основании анализа большого количества данных.

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

Читайте также:  Роботы проявили альтруизм в процессе эволюции

У искусственного интеллекта его попросту нет, а значит и решение подобных задач казалось невозможным.

Все изменилось благодаря нейронным сетям, которые учатся делать все то, что мы обычно выполняем неосознанно – узнаем голоса, играем в игры, запоминаем лица и т.д.

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

Где используются нейросети и машинное обучение?

Решать сложные задачи, которые зачастую посильны только людям, но при этом исключая риски, связанные с пресловутым человеческим фактором – несомненное преимущество нейронных сетей и причина столь активного их применения в различных сферах.

Машинное обучение нейросетей сегодня востребовано повсеместно, а общие перспективы использования стремятся к бесконечности. Поэтому мы приведем несколько разрозненных примеров применения:

  1. Медицина. На основе сопоставления большого количества данных о пациентах нейронные сети способны ставить точные диагнозы, затрачивая минимум времени. А это повысит качество сферы здравоохранения и снизит смертность.
  2. Обучение. Нейросети могут анализировать личные качества школьников и студентов, создавая для них наиболее подходящие программы обучения. Это позволит понять общий уровень образования, формировать профессиональные кадры для нужных сфер и т.д.
  3. Транспорт. Машинное обучение позволяет исключить человеческий фактор и эффективно контролировать транспортные потоки, повышая безопасность дорожного движения.
  4. Информационные технологии. Тут возможности применения нейросетей особенно разнообразны.

Перечислим ряд возможностей:

Источник: https://wd-x.ru/eshhe-odna-sfera-primeneniya-mashinnogo-obucheniya-i-nejronnyx-setej/

Создаем нейронную сеть для прогнозирования временного ряда

Анализируя посещаемость нашего сайта, мы видим колоссальный интерес читателей к нейронным сетям. Данный инструментарий может решать целый набор задач, в том числе, прогнозировать временные ряды весьма эффективно. В частности, в своей диссертации я пишу следующим образом.

— В ряде работ [2],[36],[37] указано, что на сегодняшний день наиболее распространенными моделями прогнозирования являются авторегрессионные модели (ARIMAX), а также нейросетевые модели (ANN).

В статье [3], в частности, утверждается: «Without a doubt ARIMA(X) and GRACH modeling methodologies are the most popular methodologies for forecasting time series.

Neural networks are now the biggest challengers to conventional time series forecasting methods».

Без сомнений модели ARIMA(X) и GARCH являются самыми популярными для прогнозирования временных рядов. В настоящее время главную конкуренцию данным моделям составляют модели на основе ANN.

Важно

У нас на сайте пока опубликован только один материал, посвященный нейронным сетям, в котором я давала советы по созданию сети.

Интерес со стороны читателей заставляет меня более активно заниматься нейросетевым прогнозированием.

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

Первая нейронная сеть

Не стоит изобретать велосипед, а стоит взять готовый пример из книги Хайкина. Сама задача и ее решение подробно описаны в разделе 4.8 данной книги. Полный архив примеров для книги выложен у нас на форуме. Отдельно взятый рабочий пример можно скачать в архиве. Главный файл называется Create_ANN_step_0.m.

Приведенная программа решает задачу классификации. Прокомментирую текст основного файла.

% 1. Формирование исходного массива данных
P=mk_data(500); % 2. Обучение нейронной сети по методу Back Propagation Error (обратное распространение ошибки)
[W1, b1, W2, b2, ep_err, a, end_ep]=bpm_train(P, 4, 2, 2, .1, .5, 500, 0,0,0,0,0); % 3. Проверка граничных значений
bpm_dec_bnds(W1, b1, W2, b2, .1); % 4. Формирование тестового массива
T=mk_data(10000); % 5. Проверка созданной сети на тестовом массиве
[cor, uncor]=bpm_test(W1,b1,W2,b2,T); % 6. Построение графика
c=pl_circ([-2/3 0], 2.34, .01, 1);

Прогнозирование с помощью нейронной сети

Я взяла данный пример реализации нейронной сети, просмотрела внимательно содержание его функций и сделала свою нейронную сеть, которая прогнозирует торговый график по европейской территории РФ (далее ТГ) на 24 значения вперед. В архиве вы можете скачать, как полученный мною пример, так и исходные данные к нему. Основной файл называется Create_ANN_step_1.m

Шаг 1. Инициализация и исходные данные

Исходные данные по торговому графику содержатся в файле VOLUMES_EUR.mat

Источник: http://www.mbureau.ru/blog/sozdaem-neyronnuyu-set-dlya-prognozirovaniya-vremennogo-ryada

Исследование методов решения задач с использованием нейронных сетей 1 Глава 1. Нейронные сети. 2 Глава 2. Задачи с использованием нейронных сетей. 3 Выводы. – презентация

1 Исследование методов решения задач с использованием нейронных сетей 1 Глава 1. Нейронные сети. 2 Глава 2. Задачи с использованием нейронных сетей. 3 Выводы Глава 3. Реализации нейронных сетей 4<\p>

2 Глава 1. Нейронные сети Искусственный нейрон. Рис.1 Схема нейрона Из рисунка видно, что искусственный нейрон, так же как и живой, состоит из синапсов, связывающих входы нейрона с ядром, ядра нейрона, которое осуществляет обработку входных сигналов и аксона, который связывает нейрон с нейронами следующего слоя. Каждый синапс имеет вес, который определяет насколько соответствующий вход нейрона влияет на его состояние.<\p>

3 Глава 1. Нейронные сети Состояние нейрона определяется по формуле: где n – число входов нейрона xi – значение i-го входа нейрона wi – вес i-го синапса Затем определяется значение аксона нейрона по формуле: Y = f(S) Где f – некоторая функция,которая называется активационной. Наиболее часто в качестве активационной функции используется так называемый сигмоид, который имеет следующий вид:<\p>

4 Глава 1. Нейронные сети Основное достоинство этой функции в том, что она дифференцируема на всей оси абсцисс и имеет очень простую производную: При уменьшении параметра a сигмоид становится более пологим, вырождаясь в горизонтальную линию на уровне 0,5 при a=0. При увеличении a сигмоид все больше приближается к функции единичного скачка.<\p>

5 Глава 1. Нейронные сети Искусственная нейронная сеть. Исскусcтвенная нейронная се́ть – это математическая модель, а также устройства параллельных вычислений, представляющие собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Как математическая модель исскусcтвенная нейронная сеть представляет собой частный случай методов распознавания образов или дискриминантного анализа. Такие процессоры обычно довольно просты, особенно в сравнении с процессорами, используемыми в персональных компьютерах.<\p>

6 Глава 1. Нейронные сети Применение искусственных нейронных сетей. – Распознавание образов и классификация – Принятие решений и управление – Кластеризация – Прогнозирование и аппроксимация – Сжатие данных и Ассоциативная память – Производство микросхем – Применение в строительстве<\p>

7 Глава 1. Нейронные сети Распознавание образов и классификация: Принятие решений и управление: В качестве образов могут выступать различные, по своей природе, объекты: символы текста, изображения, образцы звуков и т. д. При обучении сети предлагаются различные образцы образов с указанием того, к какому классу они относятся. Образец, как правило, представляется как вектор из его признаков. При этом совокупность всех признаков должна однозначно определять класс, к которому относится образец. Эта задача близка к задаче классификации. Классификации подлежат ситуации, характеристики которых поступают на вход нейронной сети. На выходе сети при этом должен появится признак решения, которое она приняла. При этом в качестве входных сигналов используются различные критерии описания состояния управляемой системы.<\p>

Совет

8 Глава 1. Нейронные сети Кластеризация: Под кластеризацией понимается разбиение множества входных сигналов на классы, при том, что ни количество ни признаки классов заранее неизвестны. После обучения такая сеть способна определять к какому классу относится входной сигнал. Прогнозирование и аппроксимация: Способности нейронной сети к прогнозированию напрямую следуют из ее способности к обобщению и выделению скрытых зависимостей между входными и выходными данными. После обучения сеть способна предсказать будущее значение некой последовательности на основе нескольких предыдущих значение и/или каких-то существующих в настоящий момент факторов.<\p>

9 Глава 1. Нейронные сети Сжатие данных и Ассоциативная память: Способность нейросетей к выявлению взаимосвязей между различными параметрами дает возможность выразить данные большой размерности более компактно, если данные тесно взаимосвязаны друг сдругом. Обратный процесс – восстановление исходного набора данных из части информации – называется (авто)ассоциативной памятью. Ассоциативная память позволяет также восстанавливать исходный сигнал/образ из зашумленных/поврежденных входных данных. Решение задачи гетероассоциативной памяти позволяет реализовать память, адресуемую по содержимому<\p>

10 Глава 1. Нейронные сети Производство микросхем: Применение в строительстве: При проведении испытаний качества бетона используется большое количество методов. Одним из них является бурение в поисках образовавшейся полости. Однако с помощью нейросетей возможно проверить весь материал, а также определить глубину, на которой находится полость. Путем подачи звуковых волн и приема отраженного сигнала, а затем обработкой ИНС, специалисты из National Institute of Standards and Technology (NIST) способны проверить качество бетона при толщине материала до полуметра. Нейронная сеть, примененная на заводе Intel, способна идентифицировать брак на производстве. Первоначально опытной системе давали электрическую испытательную информацию от готовых чипов и соответствующих переменных управления производственным процессом. Отношения между этими двумя параметрами были определены числовым экспериментом и моделированием процесса CMOS.<\p>

11 Глава 1. Нейронные сети Классификация искусственных нейронных сетей Классификация по типу входной информации: Аналоговые нейронные сети (используют информацию в форме действительных чисел); Двоичные нейронные сети (оперируют с информацией, представленной в двоичном виде). Классификация по характеру обучения: С учителем (выходное пространство решений нейронной сети известно); Без учителя (нейронная сеть формирует выходное пространство решений только на основе входных воздействий). Такие сети называют самоорганизующимися; С критиком (система назначения штрафов и поощерений).<\p>

12 Глава 1. Нейронные сети Классификация по характеру настройки синапсов: Сети с фиксированными связями (весовые коэффициенты нейронной сети выбираются сразу, исходя из условий задачи, при этом:, где W весовые коэффициенты сети); сети с динамическими связями (для них в процессе обучения происходит настройка синаптических связей, то есть, где W весовые коэффициенты сети).<\p>

13 Глава 2. Задачи с использованием нейронных сетей. В литературе встречается большое число признаков, которые должны быть свойственны задаче, чтобы применение НС было оправдано и НС могла бы ее решить: отсутствует алгоритм или не известны принципы решения задач, но зато накоплено достаточное число примеров; проблема характеризуется большими объемами входной информации; данные неполны или избыточны, зашумлены, частично противоречивы. Отсюда можно сделать вывод, что НС хорошо подходят для распознавания образов и решения задач классификации, оптимизации и прогнозирования. Ниже расписан перечень возможных промышленных применений нейронных сетей, на базе которых либо уже созданы коммерческие продукты, либо реализованы демонстрационные прототипы.<\p>

14 Глава 2. Задачи с использованием нейронных сетей. Банки и страховые компании: автоматическое считывание чеков и финансовых документов; проверка достоверности подписей; оценка риска для займов; прогнозирование изменений экономических показателей. Административное обслуживание: автоматическое считывание документов; автоматическое распознавание штриховых кодов. Нефтяная и химическая промышленность: анализ геологической информации; идентификация неисправностей оборудования; разведка залежей минералов по данным аэрофотосъемок; анализ составов примесей; управление процессами.<\p>

15 Глава 2. Задачи с использованием нейронных сетей. Военная промышленность и аэронавтика: обработка звуковых сигналов (разделение, идентификация, локализация); обработка радарных сигналов (распознавание целей, идентификация и локализация источников); обработка инфракрасных сигналов (локализация); обобщение информации; автоматическое пилотирование. Промышленное производство: управление манипуляторами; управление качеством; управление процессами; обнаружение неисправностей; адаптивная робототехника; управление голосом.<\p>

Источник: http://www.myshared.ru/slide/329620/

Как классифицировать текст с помощью нейронной сети?

Если знаний в компьютерной лингвистке чуть больше чем ноль, то задачу решить получится не скоро … Почему-то поголовное большинство разработчиков тешутся надеждой, что нейронные сети магическим образом решат любую задачу в области искусственного интеллекта. А какими примерами обучать нейросеть? Ведь не голым текстом…

Типа, говоришь нейросети: “глянь, тут человека упомянули”. Так что-ли? Для компьютера текст – это лишь последовательность байтов, поэтому он не может понять что для нас-людей представляет интерес. Компьютеру нужно всё разжевать и объяснить на языке цифер.

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

Обратите внимание

Чтобы, проанализировав текст, понять, что “ищут ли какого то человека, мастера”, необходимо вычленить некоторые ключевые слова, взятые из словаря: “ищу”, “помогите”, “подскажите”, “посоветуйте”, “требуется” и т.д., в сочетании с упоминанием людей (синонимы) и профессий (словарь профессий).

Нейронная сеть на этом этапе не нужна.

Она поможет в классификации при работе с цифрами, фактами (булева логика). Так что перед анализом текста нужно извлечь факты и связи из текста и затем скармливать ими классификатор. Помимо нейронных сетей есть другие виды классификаторов, более простых и лёгких в использовании, такие как байесовский классификатор. Нейросети могут быть как с обучением, так и без.

В качестве вводной части имеет смысл начать с лекции Яндекс – Малый ШАД – Лингвистика в поиске.pdf

По практической части: Что такое Томита-парсер, как Яндекс с его помощью …

Возможно, задача решается проще и без нейросетей.

Нравится 16 КомментироватьСам по себе текст в чистом виде на вход нейронных сетей не подходит, вам нужны критерии, количество которых не меняется от теста к тесту и значение которых нормализовано (находится в пределах, обычно делают 0..1 или даже -1..

+1), критерии по значениям (тупо перечисления enum) могут быть как один критерий с фиксированными значениями (плохой вариант, подходит для критериев которые можно сравнить) так и может быть векторами, значения которых 0 и один из элементов 1.

К итогам работы нейросети те же требования (с перечислениями это обычно вектор вероятностей) Критериями для текстов могут быть как простое наличие ключевых слов или фраз, так и такие необычные как количество символов между знаками препинания, их количество, количество символов/слов до знака препинания (например вопроса) и т.п.

даже количество синтаксических ошибок – тоже неплохой критерий.

Это если велосипед изобретать. по существующим решениям подсказать не могу, пока еще сам этим не занимался.

Нравится 4 КомментироватьДля решения вашей задачи необходимо изучить алгоритм Байеса (bazhenov.me/blog/2012/06/11/naive-bayes) и использовать библиотеку pymorphy2 для выделения нормальной формы слов. Все реализуется за пару дней на phyton. Работает с точностью до 90%, в тех случаях которые вы описали.
P/S/ У нас работает для автоматической классификации запросов от пользователей 🙂 Классификатор достаточно ветвистый. Мы не использовали готовые библиотеки для алгоритма -хотелось поиграться самими. В качестве БД используется sqllite.Нравится 2 Комментировать

Источник: https://toster.ru/q/374521

Нейросети: доступно о сложном — Офтоп на DTF

На пути к искусственному интеллекту.

Созданию искусственного интеллекта предшествует ряд вопросов более или менее общего характера. К более общим можно отнести вопросы морали и философии.

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

И если на вопросы морали вряд ли когда-нибудь будут найдены однозначные ответы, то вопросы физических характеристик решить возможно. Так, наиболее эффективным приближением к созданию искусственного интеллекта стали нейронные сети, которые находят применение и в видеоиграх.

Важно

За последние годы мы узнали, что нейронные сети «решили» шашки, победили чемпиона в сложную китайскую игру Го, эффективно играют в покер, гораздо лучше человека справляются с оценкой финансовых инструментов, пишут стихи и воспроизводят стили великих художников, перестраивая фотографии со смартфонов.

Пора разобраться, что же за технология постепенно изменяет мир. Задача для обывателя усложняется тем, что нейронные сети — понятие, которое одновременно обращается к таким категориям и областям науки как нейропсихология, математика, кибернетика и программирование.

Как всё началось

Нейропсихология появилась в ответ на всё возрастающий интерес человека к собственному разуму. Со временем стало очевидно, что с философской точки зрения объяснить природу разума можно тысячей методов. Однако с физиологической — разум есть не что иное, как одна из функций мозга. Мозг состоит из вполне объяснимой материи и функционирует по некоторым законам, пусть и не до конца понятным.

Идею искусственной нейронной сети впервые описали математик Уолтер Питтс и нейропсихолог Уоррен Мак-Каллок в 1943 году.

Их математическая модель упрощала понимание деятельности мозга до цепи взаимосвязанных элементов, каждый из которых способен обрабатывать информацию, а затем передавать её последующему элементу.

Этими взаимосвязанными элементами были нейроны — устройства, способные оперировать двоичными числами.

Фрэнк Розенблатт, создатель одной из первых моделей нейронной сети — перцептрона

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

О нейроне

Строение биологического нейрона

При первом знакомстве со структурой простейшей нейронной сети (входы, выходы, синапс, нейрон, аксон, активационная функция, перцептрон, веса связи и другие поначалу непростые понятия) у неподготовленного человека может возникнуть ряд вопросов, основной из которых — с какой стороны вообще подходить к этому знанию?

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

Формальный нейрон

Обобщая, можно сказать, что нейрон решает, насколько важны факты для отдельно взятой небольшой ситуации. В менее общем смысле — задача нейрона состоит в оценке некоторых входных факторов и передаче данной оценки.

Что вообще делает нейрон? На входе у нас есть некоторые данные. Эти данные передаются по специальным связям-синапсам для дальнейшего суммирования, преобразования и вывода. Каждый синапс имеет свой вес для каждого фактора, на который значение этого фактора умножается.

Таким образом, суммирование факторов в сумматоре производится взвешенное. Результат этого суммирования затем преобразуется с помощью активационной функции, и информация передается по специальной связи-аксону для дальнейшего использования.

Если синапсов у нейрона может быть много, то аксон — только один.

Один такой нейрон способен решить небольшую задачу. Именно поэтому нейрон отдельно рассматривается лишь для общего понимания механики функционирования нейронной сети.

Как это работает

Предположим, что нам необходимо из миллиона фотографий отобрать все, на которых есть молоток. Отдельный нейрон решить задачу не способен из-за своей простой структуры. Точно так же, отдельный нейрон в нашем мозгу не способен определить, что молоток — это молоток. Скорее, он может охарактеризовать блеск на головке как металлический и передать эти данные следующему нейрону для обобщения.

Нейронная сеть состоит из множества нейронов. Структура их расположения и связей различается в зависимости от модели сети. Бывают нейронные сети с одним слоем нейронов, бывают и так называемые глубинные — со многими слоями.

Выбор модели зависит от типа решаемой задачи. Нередко задачи носят экспериментальный характер. Именно поэтому практических обобщений для использования тех или иных моделей нейронных сетей существует не так уж много.

Но они есть.

Свёрточные нейронные сети

Так, свою эффективность в распознавании образов доказали свёрточные нейронные сети.

Нейронная сеть, состоящая из одного слоя нейронов, которая попиксельно будет рассматривать изображение и решать, есть ли на нем молоток — очень громоздкая, ресурсоемкая и неэффективная. Количество связей и сложность математического моделирования не позволит эффективно решить комплексную задачу. Разве что задачу распознавания печатных букв в рамках одного шрифта, но это очень частный случай.

Идею свёрточной нейронной сети можно объяснить биологической аналогией. Как мы определяем, что молоток — это молоток?

Совет

Смотрим на лежащий объект — наш мозг вызывает из памяти набор характеристик, которым должен соответствовать молоток. Железная голова, ручка из дерева. Также мозг сопоставляет форму и цвета. Однако, если показать мозгу молоток розового цвета, он все равно будет воспринят молотком, хоть и странным. Если же форму головки изменить на круглую, то мозг усомнится — молоток ли перед нами?

Формальное представление свёрточной нейронной сети

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

Изображение анализируется группами нейронов. Вначале сеть определяет базовые характеристики, например цвет. Затем более крупные базовые характеристики объекта — например форму изгиба ручки молотка. Таким образом, сеть в конечном счете сама решит, какие характеристики ей нужны, чтобы найти молоток на изображении.

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

Рекуррентные нейронные сети

У вышеописанных нейронных сетей существует, однако, проблема: у них нет памяти. Иными словами, нейронные сети, которые мы упоминали, каждый раз работают как сложноустроенный алгоритм. В них информация передается строго вперед, отсюда и их формальное название — нейронные сети прямого распространения.

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

Рекуррентные нейронные сети обладают памятью — они могут ассоциировать текущее состояние сети с предыдущим. В нашем примере — нейросеть сможет вспомнить и молоток, который она определила ранее, при определении молотка следующего.

Примеры рекуррентных нейронных сетей различной архитектуры

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

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

Переводчик будет знать все слова, предположим, английского и русского языков. Переводчик даже будет знать основные идиомы и их переводы. Однако как сделать так, чтобы перевод осуществлялся согласно смыслу текста, а не его формальной структуры и набору слов?

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

Однако со временем сеть сможет развиться до такой степени, что будет адекватно определять тип и стиль текста и переводить на другой язык.

Обратите внимание

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

Более полно про рекуррентные нейронные сети можно прочитать здесь.

Обучение нейронной сети

Резонный вопрос: каким образом сеть решает, что правильно, а что нет? Вышеупомянутые структуры могут решать математическую задачу, но правильное математически решение с практической точки зрения может оказаться совершенно неверным.

Нейронные сети необходимо обучать.

Возьмем классический пример с маленьким ребёнком. Ребёнку в начале своего жизненного пути незнакомо практически всё – начиная от перемещения в пространстве, заканчивая моральными нормами.

Младенец, пытаясь ходить, как взрослый, будет подниматься, делать пару нестройных шагов и падать. Чтобы затем подняться вновь, сделать чуть более стройными эти несколько шагов и упасть чуть позже, лучше сгруппировавшись, чтобы не ушибиться.

Иными словами, ребёнок учится на своих ошибках (свойство, к сожалению, часто забывающееся в процессе взросления).

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

Метод обратного распространения ошибки

Во главе такого обучения лежит метод обратного распространения ошибки, когда на выходе полученное значение сигнала нейронной сети сравнивается с необходимым значением.

Теперь, когда мы понимаем формальную структуру нейрона, несложно будет предположить, что для нивелирования ошибки нам нужно модифицировать веса, на которое умножаются входные данные.

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

Важно

Мы сознательно пропустили всю математику, о ней можно внятно узнать во множестве хороших статей.

Метод выше требует постоянного вмешательства со стороны «учителя».

Однако нейронные сети могут обучаться и самостоятельно. Например, в задачах, в которых необходимо выявить общие принципы предоставленной информации. Нейронная сеть самостоятельно анализирует массив данных и выявляет принципы. Таким образом обучаются свёрточные нейронные сети — они самостоятельно выбирают факторы, необходимые для определения объекта.

Источник: https://dtf.ru/flood/5407-neyroseti-dostupno-o-slozhnom

Ссылка на основную публикацию
Adblock
detector