Статья для понимания принципа работы нейронной сети искусственного интеллекта

внешний интерфейс задняя часть

нейроны головного мозга

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

在这里插入图片描述

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

  • Тело клетки состоит из ядра, цитоплазмы и клеточной оболочки. Это центр нейронного метаболизма, компонент, который получает информацию и обрабатывает ее.
  • Дендриты, представляющие собой дендритные волокнистые тела, отходящие наружу от тела клетки, являются входными каналами нейронов и получают информацию от других нейронов.
  • Аксон – это самая длинная и толстая ветвь тела волокна, отходящая от тела клетки к месту, то есть нервному волокну, являющемуся выходным каналом нейрона. Аксоны имеют две структурные формы, миелинизированные волокна и немиелинизированные волокна, которые передают информацию с разной скоростью. Терминал аксона имеет множество отходящих наружу дендритных волокон, называемых нервными окончаниями, которые являются терминалами вывода информации нейрона.
  • Синапс, где нервные окончания нейрона вступают в контакт с дендритами или телом клетки другого нейрона. Каждый нейрон общается с другими нейронами через синапсы, а клетки устанавливают соединения через синапсы для реализации передачи информации.Каждый нейрон имеет от 103 до 104 синапсов.

在这里插入图片描述

смоделированный мозг

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

В 1943 году Маккалох и Питтс опубликовали статью «Логическое исчисление внутренних концепций нервной деятельности», в которой впервые был предложен математический метод для представления функции обучения человеческого мозга.

在这里插入图片描述

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

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

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

модель персептрона

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

在这里插入图片描述

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

Общий процесс выглядит следующим образом:

  • Инициализируйте параметры веса случайными числами.
  • Передайте входной вектор в сеть.
  • Вычислите выход y' сети на основе заданного входного вектора и весовых значений. Функция персептрона выглядит следующим образом:

在这里插入图片描述

  • Если y'≠y, все веса соединений wi корректируются с шагом Δw = yxi.
  • Вернитесь к шагу 2.

Внедрить градиентный спуск

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

在这里插入图片描述

Примерный процесс:

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

在这里插入图片描述

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

在这里插入图片描述

  • Веса корректируются рекурсивно с использованием следующего градиентного спуска:

在这里插入图片描述

  • Вернитесь к шагу 2.

Ограничения более ранних моделей

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

Для ранних нейронных моделей он был очень ограничен и в некотором смысле вообще бесполезен. Мински и Пейперт опубликовали книгу «Персептрон» в 1969 году, в которой разъяснялось, что персептрон может иметь дело только с линейно разделимыми задачами и совершенно бессилен для других сложных задач.

在这里插入图片描述

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

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

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

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

在这里插入图片描述

Примерный процесс:

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

在这里插入图片描述

  • Используйте рассчитанный градиент, чтобы обновить параметры с помощью формулы

在这里插入图片描述

在这里插入图片描述

тип вопроса

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

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

глубокая нейронная сеть

Во втором десятилетии 21 века глубокое обучение стало самым ярким исследованием в области искусственного интеллекта. В 2011 году Google X Labs извлекла 10 миллионов изображений с YouTube и передала их в Google Brain, который использует глубокое обучение, и через три дня мозг обнаружил кошек самостоятельно, без помощи человека. В 2012 году Microsoft использовала глубокое обучение для полного распознавания речи и перевода говорящих в реальном времени, то есть для выполнения синхронного перевода.

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

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

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

Развитие сверточных нейронных сетей в основном направлено на решение задач человеческого зрения, но сейчас оно используется и в других направлениях. Процесс разработки в основном идет от Lenet5->Alexnet->VGG->GooLenet->ResNet и так далее.

Сверточные слои были изобретены в 1980-х годах, но сложные сети нельзя было построить из-за аппаратных ограничений, и это не практиковалось до 1990-х годов.

В 1998 году ЛеКун предложил комбинацию сверточных слоев, объединенных слоев и полносвязных слоев для решения проблемы распознавания рукописных цифр. Эффект в это время уже очень хороший, что можно сравнить с другими классическими моделями машинного обучения. Архитектура следующая: вход 32 x 32, функции извлекаются путем свертки, затем понижающей дискретизации, свертки и снова понижающей дискретизации, за которой следует полное соединение и соединение по Гауссу. А именно Ленет5.

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

В конкурсе LSVRC 2012 года Хинтон и его ученик Алекс Крижевский разработали глубокую сверточную сеть Alexnet, которая по структуре похожа на Lenet5, но сверточный слой глубже, а общее количество параметров составляет десятки миллионов. Несколько сверточных слоев с сотнями сетевых глубин каждый. А именно Алекснет.

Сильный претендент на участие в конкурсе LSVRC Challenge 2014, модели VGG, предложенной группой визуальной геометрии Оксфордского университета. По сравнению с Alexnet, он в основном уменьшает ядро ​​свертки и вместо этого использует 3x3. Общая структура та же, но конфигурация свертки может быть разной. Функция активации использует ReLU, объединение использует максимальное объединение, и, наконец, softmax используется для вывода вероятностей.

В 2014 году сетевая модель GoogLenet победила в конкурсе LSVRC Challenge, в котором впервые приняли участие крупные компании, и с тех пор его выигрывают крупные компании с огромными бюджетами. GoogLenet в основном состоит из 9 начальных модулей. Количество параметров GoogLenet сократилось до более чем 10 миллионов, а точность повысилась по сравнению с Alexnet, а погрешность снизилась с 16,4% до 6,7%.

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

В 2015 году ResNet был предложен доктором Хе Юмином из Исследовательского института Microsoft, который в настоящее время является ученым-исследователем искусственного интеллекта в Facebook. ResNet имеет блестящий послужной список и выиграл сразу 5 первых мест в том году.

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

Рекуррентная нейронная сеть — это рекуррентная нейронная сеть, которая в основном предназначена для обработки данных последовательности Что такое данные последовательности? То есть предыдущий ввод связан со следующим вводом.Например, в предложении слова до и после связаны, «Я голоден, я собираюсь пойти на хх», согласно предыдущему вводу, "xx", скорее всего, будет "Ешь поесть". Это данные последовательности.

Существует множество вариантов рекуррентных нейронных сетей, таких как LSTM, GRU и т. д.

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

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

在这里插入图片描述
在这里插入图片描述

Например, вы можете сделать предсказание на уровне символов, как показано на рисунке ниже, если здесь всего четыре символа, а образцом является слово «привет», тогда введите h, чтобы предсказать, что следующий символ будет e, e затем выведите l, l, затем выведите l и, наконец, введите l, затем выведите o.

在这里插入图片描述

------------- Рекомендуем прочитать ------------

Краткое изложение моих проектов с открытым исходным кодом (машинное и глубокое обучение, НЛП, сетевой ввод-вывод, AIML, протокол mysql, чат-бот)

Зачем писать «Анализ проектирования ядра Tomcat»

2018 Алгоритмы структуры сводных данных

Сборник статей по машинному обучению за 2018 г.

Сводка статей о глубине Java за 2018 г.

Резюме по обработке естественного языка за 2018 г.

Резюме глубокого обучения за 2018 г.

Сводка статей об исходном коде JDK за 2018 г.

Обзор Java Concurrency Core за 2018 г.

Итоговые чтения за 2018 год


Поговори со мной, задай мне вопросы:

在这里插入图片描述

Добро пожаловать, чтобы обратить внимание: искусственный интеллект, чтение и мысли, болтовня о математике, распределенное, машинное обучение, глубокое обучение, обработка естественного языка, алгоритмы и структуры данных, глубина Java, ядро ​​​​Tomcat и другие статьи по теме

在这里插入图片描述