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

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

Это 31-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

Представление нейронных сетей

Есть как линейная регрессия, так и логистическая регрессия Зачем изучать нейронные сети?

Теперь, чтобы привести несколько примеров.

image.png

Это задача классификации контролируемого обучения. Есть только два количества признаков.

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

image.png

g(θ0+θ1x1+θ2x2+θ3x1x2+θ4x12x2+θ5x13x2+θ6x1x22+)\begin{aligned} &g\left(\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}\right. +\theta_{3} x_{1} x_{2}+\theta_{4} x_{1}^{2} x_{2} \left.+\theta_{5} x_{1}^{3} x_{2}+\theta_{6} x_{1} x_{2}^{2}+\ldots\right) \end{aligned}

Только два количества признаков настолько проблематичны, что, если их будет 100?

Даже если включены только квадратичные члены, такие какx12,x22,...,x1002,x1x2,x1x3,...,x99x100x_1^2, x_2^2, ..., x_{100}^2, x_1x_2, x_1x_3, ..., x_{99}x_{100}, так что в конце также более 5000 многочленов.Оn22\frac{n^2}{2}Кусок,x1x_1отx1x_1умножить наx100x_{100}Это 100 предметов и так далее.x100x_{100}отx1x_1умножить наx100x_{100}Это составляет до 10 000 элементов. ноx1x100x_1x_{100}иx100x1x_{100}x_1то же самое, а затем объединить то же самое. Так что в итоге осталось примерно половина.

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

Теперь посчитайте три включенных термина.x13,x23,...,x1003,x12x2,x12x3,...,x99x1002x_1^3, x_2^3, ..., x_{100}^3, x_1^2x_2, x_1^2x_3, ..., x_{99}x_{100}^2, так что вы получите 170 000 кубических членов. (Проверьте сами, я не навязываю).

Как видно из приведенного выше примера, когда количество признаков велико, пространство будет быстро расширяться. Поэтому очень неразумно использовать метод построения полиномов для построения нелинейных классификаторов, когда количество признаков n очень велико!

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

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

image.png

Вы можете сказать, что это машина, просто взглянув на нее, но вы, конечно, не можете сказать, что это машина сразу.

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

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

image.png

Необходимость введения нелинейных допущений:

image.png

Для автомобиля возьмите два пикселя и поместите их в систему координат. Положение зависит от интенсивности точки 12 пикселя.

image.png

image.png

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

Предполагая, что изображение автомобиля имеет размер 50*50 пикселей, теперь используйте вектор x для хранения яркости каждого пикселя. Итак, 2500 пикселей. Размерность вектора 2500. Если изображение раскрашено и сохранено в RGB, размерность вектора 7500.

Если теперь вы хотите перечислить нелинейные предположения со всеми квадратичными членами, то квадратичные признаки(xi×xj):3\left(x_{i} \times x_{j}\right): \approx 3миллион функций. Три миллиона, вычислительные затраты слишком высоки. Следовательно, он содержит только квадратные члены и кубические члены, чтобы найти, что даже модель предположения регрессии подходит только для случая, когда n относительно мало. Чем больше n, тем лучше влияние нейронной сети на сложные нелинейные предположения.

Алгоритмы нейронных сетей существуют уже давно, изначально для создания машин, имитирующих мозг.

Отображение модели

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

image.png

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

image.png

x1x3x_1-x_3Обозначает дендриты как вход, а справа как модель прогнозирования выхода аксонов.image.png

вводx1x3x_1-x_3но обычно с дополнительными узламиx0x_0, стать единицей смещения или нейроном смещения.

Если вы видите вес слова в литературе по нейронным сетям, это на самом деле то же самое, что узнать параметр θ.

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

image.png

image.png

ai(j)= "activation" of unit i in layer jΘ(j)= matrix of weights controlling  function mapping from layer j to  layer j+1\begin{aligned} a_{i}^{(j)}=& \text { "activation" of unit } i \text { in layer } j \\ \Theta^{(j)}=& \text { matrix of weights controlling } \\ & \text { function mapping from layer } j \text { to } \\ & \text { layer } j+1 \end{aligned}

ai(j)a_{i}^{(j)}Представляет элемент активации i-го нейрона или единицы в j-м слое, как и для матрицы весов.Θ(j)\Theta^{(j)}, который управляет отношением отображения от слоя j к слою j+1.

a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)a2(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)a3(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)hΘ(x)=a1(3)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))\begin{aligned} a_{1}^{(2)}=g\left(\Theta_{10}^{(1)} x_{0}+\Theta_{11}^{(1)} x_{1}+\Theta_{12}^{(1)} x_{2}+\Theta_{13}^{(1)} x_{3}\right) \\ a_{2}^{(2)}=g\left(\Theta_{20}^{(1)} x_{0}+\Theta_{21}^{(1)} x_{1}+\Theta_{22}^{(1)} x_{2}+\Theta_{23}^{(1)} x_{3}\right) \\ a_{3}^{(2)}=g\left(\Theta_{30}^{(1)} x_{0}+\Theta_{31}^{(1)} x_{1}+\Theta_{32}^{(1)} x_{2}+\Theta_{33}^{(1)} x_{3}\right) \\ h_{\Theta}(x)=a_{1}^{(3)}=g\left(\Theta_{10}^{(2)} a_{0}^{(2)}+\Theta_{11}^{(2)} a_{1}^{(2)}+\Theta_{12}^{(2)} a_{2}^{(2)}+\Theta_{13}^{(2)} a_{3}^{(2)}\right) \end{aligned}

a1(2)a_{1}^{(2)}активационная функцияa1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)a_{1}^{(2)}=g\left(\Theta_{10}^{(1)} x_{0}+\Theta_{11}^{(1)} x_{1}+\Theta_{12}^{(1)} x_{2}+\Theta_{13}^{(1)} x_{3}\right)

На последнем маленьком изображении не добавлена ​​единица смещения, посмотрите на изображение с добавленным нейроном смещения на предыдущем изображении. сюдаΘ(1)\Theta^{(1)}Матрица представляет первый слой (входной слой x) для второго скрытого слояa(2)a^{(2)}Матрица весов (параметров) .

можно понимать какΘ(1)=[θ10θ11θ12θ13θ20θ21θ22θ23θ30θ31θ32θ33]\Theta^{(1)}=\begin{bmatrix}\theta_{10} \theta_{11} \theta_{12} \theta_{13} \\ \theta_{20} \theta_{21} \theta_{22} \theta_{23} \\ \theta_{30} \theta_{31} \theta_{32} \theta_{33} \end{bmatrix}