Искусственные нейронные сети - это класс алгоритмов, которые включают в себя множество различных типов алгоритмов, основанных на графиках, поэтому я не буду здесь вдаваться в подробности, кроме того, что вы просили, потому что есть слишком много, чтобы сказать, так как существует очень много видов ANN.
Первый вид искусственных нейронных сетей, известные нейроны МакКаллоха-Питтса, были линейными , то есть они могли решать только линейные задачи решения (т. Е. Наборы данных, которые можно было бы линейно разделить , рисуя линию). Со временем эта линейная модель нейронной сети стала известна как Персептрон или Адалин (в зависимости от того, как вы вычисляете обновление весов).
Линейные нейронные сети просто состоят из двудольного графа, где левые боковые узлы являются входными данными, а правые боковые узлы - выходными. Изучаются только веса ребер между этими узлами (порог активации узлов также можно регулировать, но это делается редко).
Большой шаг был сделан, когда были изобретены мелкие нейронные сети: вместо двудольного графа мы используем трехсторонний граф: входной «слой», выходной «слой» и один «скрытый слой» между ними. Благодаря скрытому слою, сеть теперь может принимать нелинейные решения и решать такие проблемы, как канонический XOR.
Обратите внимание, что «неглубокий» термин был придуман ретроспективно, когда были изобретены глубокие нейронные сети (также называемые n-слойными нейронными сетями). Это должно противопоставить нейронные сети только с одним скрытым слоем, с глубокими нейронными сетями с n скрытыми слоями . Как вы можете догадаться, использование большего количества скрытых слоев позволяет выбирать более сложные наборы данных, поскольку имеется больше слоев для модуляции решения (т. Е. Вы увеличиваете размерность границы своего решения, что может привести к переобучению).
Вы можете спросить: почему никто раньше не пытался использовать многослойные (глубокие) нейронные сети? На самом деле, они сделали это еще в 1975 году Фукусимой с Cognitron и Neocognitron (что на самом деле является сверточной нейронной сетью, но это уже другая история). Однако проблема заключалась в том, что никто не знал, как эффективно изучать такие сети, большая проблема заключалась в регуляризации . AutoEncoders Хинтона открыли путь, и позже Исправленные Линейные Единицы LeCun исправили проблему навсегда.
Как насчет Deep Beliefs Networks (DBN)? Это просто многослойные полуограниченные машины Больцмана. Таким образом, они являются своего рода глубокой нейронной сетью, но с другим базовым сетевым шаблоном (то есть: слой, этот шаблон повторяется): машины Больцмана отличаются от других сетей тем, что они являются генеративными , то есть обычно они используется, чтобы учиться на ваших данных воспроизводить их («генерировать»), в то время как обычные глубокие нейронные сети используются для разделения ваших данных (путем «границы принятия решения»).
Другими словами, DNN отлично подходят для классификации / прогнозирования значения из вашего набора данных, в то время как DBN отлично подходят для «восстановления» поврежденных данных (когда я говорю «восстановить», это не только из поврежденных данных, но и для совершенно точных данных). что вы просто хотите исправить ситуацию, чтобы она была более стереотипной, чтобы ее легче было распознать с помощью другой нейронной сети, такой как рукописные цифры).
На самом деле, чтобы подвести итог, вы можете сказать, что АвтоЭнкодеры являются более простой формой Deep Belief Network. Вот пример DBN, обученного распознавать лица, но НЕ номера, номера автоматически исчезают (это эффект «фиксации» DBN):
Таким образом, в конце концов, DBN и DNN не противоположны: они дополняют друг друга. Например, вы можете представить себе систему, которая распознает рукописные символы, которые сначала передают изображение символа в DBN, чтобы сделать его более стереотипным, а затем подают стереотипное изображение в DNN, который затем выводит, какой символ представляет изображение.
Последнее замечание: Сети глубокого убеждения очень близки к глубоким машинам Больцмана: в глубоких машинах Больцмана используются слои машин Больцмана (которые являются двунаправленными нейронными сетями, также называемыми рекуррентными нейронными сетями), в то время как в сетях глубокого убеждения используются полуограниченные машины Больцмана (полу- ограниченный означает, что они изменяются на однонаправленные, что позволяет использовать обратное распространение для изучения сети, что намного эффективнее, чем изучение рекуррентной сети). Обе сети используются для одной и той же цели (регенерация набора данных), но вычислительные затраты различны (машины Deep Boltzmann значительно дороже в обучении из-за их повторяющейся природы: сложнее "стабилизировать" веса).
Бонус: в отношении сверточных нейронных сетей (CNN) вы найдете множество противоречивых и запутанных утверждений, и обычно вы обнаружите, что это просто глубокие нейронные сети. Тем не менее, кажется, что консенсус заключается в том, чтобы использовать исходное определение неокогнитрона Фукусимы: CNN - это DNN, который вынужден извлекать различные функции на разных иерархических уровнях путем наложения свертки перед активацией (что DNN может делать естественным образом, но заставляя ее установив другую функцию свертки / активации на разных уровнях сети, можно получить лучший результат, по крайней мере, это ставка CNN):
И, наконец, более точный график Искусственного интеллекта смотрите здесь .