Русский
Русский
English
Статистика
Реклама

Машинное обучение (часть 1) нейронный сети, общая теоретическая часть

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


Рисунок 1 Классический подход решения задач

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


Рисунок 2 Машинное обучение

2. Нейронные сети

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

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


Рисунок 3 Математическое представление нейрона

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

3. Персептрон

Математическая модель нейронной сети, состоящего из одного нейрона, который выполняет выполняет две последовательные операции (рисунок 4):

  • вычисляет сумму входных сигналов с учетом их весов (проводимости или сопротивления) связи

    ${sum=\ \vec{X}}^T\vec{W}+\vec{B}=\sum_{i=1}^{n}{x_iw_i}+b$



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

    $out=\varphi(sum)$



Рисунок 4 Математическая модель персептрона

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

Заметка:

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

Таблица 1 - Распространенные активационные функции
Имя Формула График
Linear function

$\varphi\left(x\right)=x$

.
Sigmoid function

$\varphi\left(x\right)=\frac{1}{1+e^{-x}}$


Softmax function

$\varphi\left(x_j\right)=\frac{e^{x_j}}{\sum_{i} e^{x_i}}$

$\varphi \left ( \begin{bmatrix} 1.2\\ 0.9\\ 0.4 \end{bmatrix} \right ) = \begin{bmatrix} 0.46\\ 0.34\\ 0.20 \end{bmatrix} $


Используется для задач классификации (где количество классов более 2)
Hyperbolic Tangent function

$\varphi\left(x\right)=\frac{e^x-e^{-x}}{e^x-e^{-x}}$



Сжимает входной сигнал в интервале [-1, 1]. Применяется в скрытых слоях нейронной сети, так как центрирует выходной сигнал относительно нуля, что ускоряет процесс обучения
Rectified Linear Unit (ReLU)

$\varphi\left(x\right)=\max(0,x)$



Используется в скрытых слоях нейронной сети, имеет лучшую сходимость, чем sigmoid и tanh функции
Leaky ReLU

$\varphi\left(x\right)=\max(0.01x,x)$



Лишен недостаток ReLU функции в интервале отрицательных выходных сигналов, где частичная производная равна 0

Источник: habr.com
К списку статей
Опубликовано: 26.08.2020 00:05:55
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Машинное обучение

Нейросети

Нейронные сети

Машинное обучение. нейросети

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru