lab
Neural Network
Русский

Погрузитесь в нейрон

Обзор

Из предыдущего раздела (Что такое нейронная сеть) мы узнали, что нейронная сеть - это функция, состоящая из нейронов, и нейрон также является функцией.


Нейрон можно разделить на 2 подфункции:

  • линейная функция элемента nn: g(x1,...,xn)g(x_1, ..., x_n)
  • унарная нелинейная функция: h(x)h(x)

Функция, представленная нейроном:

f(x1,...,xn)=h(g(x1,...,xn))f(x_1, ..., x_n) = h(g(x_1, ..., x_n))

Линейная функция g(x1,...,xn)g(x_1, ..., x_n)

Линейная функция имеет следующий вид:

g(x1,...,xn)=w1x1+...,wnxn+bg(x_1, ..., x_n) = w_1x_1 + ..., w_nx_n + b

Среди них w1,...,wn,bw_1, ..., w_n, b - все параметры, а разные линейные функции имеют разные параметры.

Унарная линейная функция

Когда n=1n = 1, g(x1)=w1x1+bg(x_1) = w_1x_1 + b, изображение функции представляет собой прямую линию:

w1w_11
bb0

Двоичная линейная функция

Когда n=2n = 2, g(x1,x2)=w1x1+w2x2+bg(x_1, x_2) = w_1x_1 + w_2x_2 + b, изображение функции является плоскостью:

w1w_10
w2w_21
bb0

Линейная функция элемента nn

Когда n>2n > 2, изображение функции является гиперплоскостью. За пределами 3D визуализация неудобна. Но вы можете себе представить, что характеристика у него прямая.

Нелинейная функция h(x)h(x)

Из названия легко понять, что нелинейная функция - это функция, отличная от линейной функции. Линейная функция - прямая, а нелинейная - кривая. Например, наиболее распространенная функция sigmoid:

Функция активации

В нейронных сетях мы называем эту унарную нелинейную функцию функцией активации. Чтобы узнать о некоторых распространенных функциях активации, обратитесь к функция активации в базе знаний, где:

  • Linear: f(x)=xf(x) = x является линейной функцией, что означает, что нелинейная функция не используется
  • Softmax - особый случай. Строго говоря, это не функция активации

Необходимость

Почему за нелинейной функцией активации следует линейная функция?


Это потому что:

  1. Если все нейроны являются линейными функциями, то нейронная сеть, состоящая из нейронов, также является линейной функцией.

Например, в следующем примере:

  • f1(x,y)=w1x+w2y+b1f_1(x, y) = w_1x + w_2y + b_1
  • f2(x,y)=w3x+w4y+b2f_2(x, y) = w_3x + w_4y + b_2
  • f3(x,y)=w5x+w6y+b3f_3(x, y) = w_5x + w_6y + b_3

Тогда функция, представленная всей нейронной сетью, будет следующей:

f3(f1(x1,x2,x3),f2(x1,x2,x3))=w5(w1x1+w2x2+b1)+w6(w3x2+w4x3+b2)+b3=(w1w5)x1+(w2w5+w3w6)x2+(w4w6)x3+(w5b1+w6b2+b3)\begin{aligned} &f_3(f_1(x_1, x_2, x_3), f_2(x_1, x_2, x_3)) \\ = &w_5(w_1x_1 + w_2x_2 + b_1) + w_6(w_3x_2 + w_4x_3 + b_2) + b_3 \\ = &(w_1w_5)x_1 + (w_2w_5 + w_3w_6)x_2 + (w_4w_6)x_3 + (w_5b_1 + w_6b_2 + b_3) \\ \end{aligned}

Это троичная линейная функция.

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

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

Полный нейрон

Полный нейрон сочетает в себе линейную функцию и нелинейную функцию активации, что делает его более интересным и мощным.

Унарная функция

Когда n=1n = 1, g(x1)=w1x1+bg(x_1) = w_1x_1 + b, используя функцию активации sigmoid, соответствующая функция нейрона будет:

h(g(x))=sigmoid(wx+b)h(g(x))=\text{sigmoid}(wx + b)

Функциональное изображение:

ww1
bb0

Двоичная функция

Когда n=2n = 2, g(x1,x2)=w1x1+w2x2+bg(x_1, x_2) = w_1x_1 + w_2x_2 + b, используя функцию активации sigmoid, соответствующая функция нейрона будет:

h(g(x))=sigmoid(w1x1+w2x2+b)h(g(x))=\text{sigmoid}(w_1x_1 + w_2x_2 + b)

Функциональное изображение:

w1w_10
w2w_21
bb0

nn-элементная функция

Из-за проблемы с визуализацией это полностью зависит от моего воображения! 😥

Вопрос

Почему нейронная сеть может моделировать сложные функции из комбинации нейронов?

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