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

Введение

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

Расчеты головного мозга производятся посредством тесно взаимосвязанных сетью нейронов, которые общаются, посылая электрические импульсы через нейронные проводки, состоящие из аксонов, синапсов и дендритов. В 1943 году Маккалок и Питтс смоделировали нейрон как переключатель, который получает входные сигналы от других нейронов и, в зависимости от суммарного взвешенного входного сигнала, нейрон либо активен или неактивен. Каждый синапс характеризуется величиной синаптической связи. Эти коэффициенты могут быть как положительными (возбуждающими) и отрицательными (тормозящими). В 1960-х годах, было показано, что нейроны в сетях с такой моделью обладают свойствами, близкими к мозгу: они могут выполнять сложные задачи распознавания образов, и они могут функционировать, даже если некоторые нейроны разрушаются. Демонстрации, показали, что простые сети из таких нейронов называются «перцептроны» и они стимулировали интерес в этой области, но после того, как Мински и Паперта[1] показали, что простыми персептронами можно решать только очень ограниченный класс линейно отделимых задач (см. ниже), деятельность в этой области уменьшилась. Тем не менее, метод обратного распространения ошибки[2], который может сделать довольно сложные сети из простых нейронов, эти сети могут решить проблемы, которые не были линейно разделимы. Применение искусственных нейронных сетей для машинного чтения текста, стало одним из первых широко известных приложений[3]. В области биологии, тот же тип сети, был также применен для предсказания вторичной структуры белка[4]; в самом деле, некоторые из лучших прогнозистов по-прежнему используют по существу тот же метод. Еще одна большая волна интереса в искусственных нейронных сетей, и привело к шумихе о волшебном обучении и мышления машины. Некоторые важные ранние работы собрались в реф. 5.

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

Искуственные нейронные сети
(рис. 1)

(а)Графическое представление Маккаллока-Питтса модель нейрона или пороговый блок. Пороговое устройство получает входные данные из N других блоков или внешних источников, пронумерованных от 1 до N. Вход называется Xi и соответствующие веса называется Wi. В блок поступает взвешенная сумма по всем входам, Ni=W1X1+W2X2+...+WNXN. Если бы t было бы ниже порогового значения, выход блока будет равен 1, и 0 В противном случае. Таким образом, вывод может быть выражен как g( Ni=SUMM(WiXi) — t) где g это ступенчатая функция, которая равна 0, Если аргумент является отрицательным и 1, Когда аргумент является неотрицательным
Так называемая передаточная функция, g, может также быть непрерывной сигмовидной как показано красной Кривой и линейной разделимой (B). Каждая точка представляет входные значения х1, х2 и х3 до порога. Зеленые точки соответствуют точкам данных класса 0 и красные точки 1. Зеленые и красные кресты иллюстрируют ’исключающее или’—это не возможно. Указанные сети имеет семь входов, имеет пять нейронов в скрытом слое и один выход.
(D) Восемь точек, показанных плюсами лежат на параболе (кроме некоторых «экспериментальный» шум). Они были использованы для обучения трех различных нейронных сетей. X применяют в качестве входного параметра (один вход) и проходят обучение со значением g как выход. Как и ожидалось, в сети где только один скрытый блок (зеленый) эксперимент показал плохие результаты. В сети с 10 скрытыми слоями (синий) соответствует хорошему результату. Последние сети с 20 скрытыми слоями (фиолетовый) самые лучшие показатели!

Обучение

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

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

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

Но многие проблемы классификации не являются линейно отделимыми. Мы можем разделить классы в таких нелинейных задач путем введения гиперплоскостей; то есть, путем введения более одного порогового блока. Обычно это делается путем добавления дополнительных (скрытых) слоев, каждый из которых выполняет частичную классификацию входных параметров и отправляет Выходные данные в финишный слой, который собирает частично классифицированные данные для окончательной классификации (Рис. 1С). Такая сеть называется многослойный персептрон или прямя сеть. Также такая сеть может быть использована для задач регрессии, которая требует постоянного выхода, в отличие от бинарных выходов (0 и 1). Путем замены ступенчатой функции непрерывной функцией, нейронная сеть выводит реальное число. Чаще для решения таких задач используется сигмовидная функция.

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

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

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

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

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

Список литературы

1. Minsky, M.L. & Papert, S.A. Perceptrons (MIT Press, Cambridge, 1969).
2. Rumelhart, D.E., Hinton, G.E. & Williams, R.J. Nature 323, 533–536 (1986). | Article | ISI |
3. Sejnowski, T.J. & Rosenberg, C.R. Complex Systems 1, 145–168 (1987).
4. Qian, N. & Sejnowski, T.J. J. Mol. Biol. 202, 865–884 (1988). | Article | PubMed | ChemPort |
5. Anderson, J.A. & Rosenfeld, E. (eds). Neurocomputing: Foundations of Research(MIT Press, Cambridge, 1988).

Комментарии  

+1 # Иван Кулиберов 09.10.2016 15:51
Мутная тема. Ничего не понял. Постарайтесь объяснить доходчивее. :sigh:
Ответить | Ответить с цитатой | Цитировать
0 # admin 10.10.2016 00:36
Спасибо за комментарий! Это обобщенная научная статья, для того чтобы разобраться можно пройтись по действующим ссылкам в статье на статьи о том как происходит собственно обучение нейронов , на метод обратного распространения и другую информацию )
Погуляйте по этой ссылке, там много теории и все доходчиво написано ) http://neuronus.com/nn.html
Ответить | Ответить с цитатой | Цитировать
0 # Koresh 11.12.2016 17:33
Блин а я мучался помню переводил эту статью с английского) Но статья действительно очень общая, о многом и в то же время ни о чём)
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Защитный код
Обновить