При классическом программировании разработчик описывает на конкретном языке программирования определённый жестко заданный набор правил, которые были определены на основании его знаний в конкретной предметной области и которые в первом приближении описывают процессы, происходящие в человеческом мозге при решении аналогичной задачи. Например, может быть запрограммирована стратегия игры в крестики-нолики, шахмат и другое (рисунок 1).
Рисунок 1 – Классический подход решения задач
В то время как алгоритмы машинного обучения могут определять набор правил для решения задач без участия разработчика, а только на базе наличия тренировочного набора данных. Тренировочный набор — это какой-то набор входных данных ассоциированный с набором ожидаемых результатов (ответами, выходными данными). На каждом шаге обучения, модель за счет изменения внутреннего состояния, будет оптимизировать и уменьшать ошибку между фактическим выходным результатом модели и ожидаемым результатом (рисунок 2)
Рисунок 2 – Машинное обучение
2. Нейронные сети
Долгое время учёные, вдохновляясь процессами происходящими в нашем мозге, пытались сделать реверс-инжиниринг центральной нервной системы и попробовать сымитировать работу человеческого мозга. Благодаря этому родилось целое направление в машинном обучении — нейронные сети.
На рисунке вы можете увидеть сходство между устройством биологического нейрона и математическим представлением нейрона, используемого в машинном обучении (рисунок 3).
Рисунок 3 – Математическое представление нейрона
В биологическом нейроне, нейрон получает электрические сигналы от дендритов, модулирующих электрические сигналы с разной силой, которые могут возбуждать нейрон при достижении некоторого порогового значения, что в свою очередь приведёт к передаче электрического сигнала другим нейронам через синапсы.
3. Персептрон
Математическая модель нейронной сети, состоящего из одного нейрона, который выполняет выполняет две последовательные операции (рисунок 4):
Рисунок 4 – Математическая модель персептрона
В качестве активационной функции может использоваться любая дифференцируемая функция, наиболее часто используемые приведены в таблице 1. Выбор активационной функции ложиться на плечи инженера, и обычно этот выбор основан или на уже имеющемся опыте решения похожих задач, ну или просто методом подбора.
Рисунок 1 – Классический подход решения задач
В то время как алгоритмы машинного обучения могут определять набор правил для решения задач без участия разработчика, а только на базе наличия тренировочного набора данных. Тренировочный набор — это какой-то набор входных данных ассоциированный с набором ожидаемых результатов (ответами, выходными данными). На каждом шаге обучения, модель за счет изменения внутреннего состояния, будет оптимизировать и уменьшать ошибку между фактическим выходным результатом модели и ожидаемым результатом (рисунок 2)
Рисунок 2 – Машинное обучение
2. Нейронные сети
Долгое время учёные, вдохновляясь процессами происходящими в нашем мозге, пытались сделать реверс-инжиниринг центральной нервной системы и попробовать сымитировать работу человеческого мозга. Благодаря этому родилось целое направление в машинном обучении — нейронные сети.
На рисунке вы можете увидеть сходство между устройством биологического нейрона и математическим представлением нейрона, используемого в машинном обучении (рисунок 3).
Рисунок 3 – Математическое представление нейрона
В биологическом нейроне, нейрон получает электрические сигналы от дендритов, модулирующих электрические сигналы с разной силой, которые могут возбуждать нейрон при достижении некоторого порогового значения, что в свою очередь приведёт к передаче электрического сигнала другим нейронам через синапсы.
3. Персептрон
Математическая модель нейронной сети, состоящего из одного нейрона, который выполняет выполняет две последовательные операции (рисунок 4):
- вычисляет сумму входных сигналов с учетом их весов (проводимости или сопротивления) связи
- применяет активационную функцию к общей сумме воздействия входных сигналов.
Рисунок 4 – Математическая модель персептрона
В качестве активационной функции может использоваться любая дифференцируемая функция, наиболее часто используемые приведены в таблице 1. Выбор активационной функции ложиться на плечи инженера, и обычно этот выбор основан или на уже имеющемся опыте решения похожих задач, ну или просто методом подбора.
Заметка:
Однако есть рекомендация – что если нужна нелинейность в нейронной сети, то в качестве активационной функции лучше всего подходит ReLU функция, которая имеет лучшие показатели сходимости модели во время процесса обучения.
Таблица 1 - Распространенные активационные функции
Имя | Формула | График |
Linear function | . |
|
Sigmoid function | |
|
Softmax function | Используется для задач классификации (где количество классов более 2) |
|
Hyperbolic Tangent function | |
Сжимает входной сигнал в интервале [-1, 1]. Применяется в скрытых слоях нейронной сети, так как центрирует выходной сигнал относительно нуля, что ускоряет процесс обучения |
Rectified Linear Unit (ReLU) | |
Используется в скрытых слоях нейронной сети, имеет лучшую сходимость, чем sigmoid и tanh функции |
Leaky ReLU | |
Лишен недостаток ReLU функции в интервале отрицательных выходных сигналов, где частичная производная равна 0 |
podde
А вы интересный автор: сначала выкладываете вторую часть, а через два часа – первую. Оригинально-с.