Введение в нейросети

Содержание

Слайд 2

Исторический очерк

Термин «нейронная сеть» появился в середине XX века. Первые работы, в

Исторический очерк Термин «нейронная сеть» появился в середине XX века. Первые работы,
которых были получены основные результаты в данном направлении, были проделаны Мак-Каллоком и Питтсом. В 1943 году ими была разработана компьютерная модель нейронной сети на основе математических алгоритмов и теории деятельности головного мозга.
Они выдвинули предположение, что нейроны можно упрощённо рассматривать как устройства, оперирующие двоичными числами, и назвали эту модель «пороговой логикой». Подобно своему биологическому прототипу нейроны Мак-Каллока–Питтса были способны обучаться путём подстройки параметров, описывающих синптическую проводимость.
Исследователи предложили конструкцию сети из электронных нейронов и показали, что подобная сеть может выполнять практически любые вообразимые числовые или логические операции. Мак-Каллок и Питтс предположили, что такая сеть в состоянии также обучаться, распознавать образы, обобщать, т. е. обладает всеми чертами интеллекта.

Источник: https://neuronus.com/history/5-istoriya-nejronnykh-setej.html

Слайд 3

Человеческий мозг

Человеческий мозг

Слайд 4

Искусственная НС

Искусственная НС

Слайд 5

На пальцах

Источник: https://habr.com/post/416211/

Предположим, у нас есть три разных бинарных условия (да или

На пальцах Источник: https://habr.com/post/416211/ Предположим, у нас есть три разных бинарных условия
нет) и одно бинарное решение на выходе (да или нет):

Слайд 6

На пальцах

Простая модель с тремя вводными и одним выводом. Эта модель может

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

Источник: https://habr.com/post/416211/

Слайд 7

На пальцах

То, что вы видите между вводом и выводом — это нейроны.

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

Источник: https://habr.com/post/416211/

Слайд 8

На пальцах

У каждого ввода слева есть значение: 0 или 1, да или

На пальцах У каждого ввода слева есть значение: 0 или 1, да
нет. Давайте добавим эти значения вводу, предположим, что на вечеринке не будет водки, будут друзья да будет идти дождь:

Источник: https://habr.com/post/416211/

Слайд 9

На пальцах

Цифры, которые мы расставили — это веса связей. Помните, что нейроны

На пальцах Цифры, которые мы расставили — это веса связей. Помните, что
— это абстракция? Так вот, связи — это именно то, из чего и состоит нейронная сеть. 

Источник: https://habr.com/post/416211/

Слайд 10

На пальцах

Ну, вот и все! Нейронка создана, а вы можете ее использовать

На пальцах Ну, вот и все! Нейронка создана, а вы можете ее
для любых нужд. Если сумма получается больше 0.5 — идти на вечеринку нужно. Если меньше или равно — на вечеринку идти не нужно. Спасибо за внимание!

Источник: https://habr.com/post/416211/

Слайд 11

На пальцах

Дальше все просто: вместо одного слоя нейронов мы делаем два и

На пальцах Дальше все просто: вместо одного слоя нейронов мы делаем два
снова все перебираем по точно тем же самым принципам, только уже все нейроны отдают значения другим нейронам. Если сначала у нас было только 3 связи, то теперь 3 + 9 связей с весами. А потом три слоя, четыре, рекурсивные слои, зацикленные на себе и тому подобная дичь:

Источник: https://habr.com/post/416211/

Слайд 12

Нейрон и вес

Источник: https://habr.com/post/312450/

Нейрон и вес Источник: https://habr.com/post/312450/

Слайд 13

Функция активации (ФА)

Источник: https://habr.com/post/312450/

Линейная функция

Сигмоид

Гиперболический тангенс

Функция активации (ФА) Источник: https://habr.com/post/312450/ Линейная функция Сигмоид Гиперболический тангенс

Слайд 14

Эпохи и шаги

Источник: https://habr.com/post/416211/

Итерация
Это своеобразный счетчик, который увеличивается каждый раз, когда нейронная

Эпохи и шаги Источник: https://habr.com/post/416211/ Итерация Это своеобразный счетчик, который увеличивается каждый
сеть проходит один тренировочный сет. Другими словами, это общее количество тренировочных сетов пройденных нейронной сетью. Эпоха
При инициализации нейронной сети эта величина устанавливается в 0 и имеет потолок, задаваемый вручную. Чем больше эпоха, тем лучше натренирована сеть и соответственно, ее результат. Эпоха увеличивается каждый раз, когда мы проходим весь набор тренировочных сетов, в нашем случае, 4 сетов или 4 итераций.

Слайд 15

Ошибка

Источник: https://habr.com/post/416211/

Ошибка — это процентная величина, отражающая расхождение между ожидаемым и полученным

Ошибка Источник: https://habr.com/post/416211/ Ошибка — это процентная величина, отражающая расхождение между ожидаемым
ответами. Ошибка формируется каждую эпоху и должна идти на спад. Если этого не происходит, значит, вы что-то делаете не так. Ошибку можно вычислить разными путями, но мы рассмотрим лишь три основных способа: Mean Squared Error (далее MSE), Root MSE и Arctan. 

MSE

Root MSE

Arctan

Слайд 16

Формулы

Расчет входа нейрона

Правило Видроу-Хоффа для пересчета весов

 

 

 

Формулы Расчет входа нейрона Правило Видроу-Хоффа для пересчета весов

Слайд 17

Пример. Инициализация

 

 

Выбираем задачу (Например логическое ИЛИ)
Проектируем НС

 

 

 

 

 

5. Строим таблицу истинности

 

 

 

6. Выбираем

Пример. Инициализация Выбираем задачу (Например логическое ИЛИ) Проектируем НС 5. Строим таблицу
ФА (например пороговую)

 

Слайд 18

Пример. Обучение

 

 

 

Пример. Обучение

Слайд 19

Пример. Обучение

 

 

 

Пример. Обучение

Слайд 20

Пример. Обучение

 

 

 

Обучение завершено!

Пример. Обучение Обучение завершено!

Слайд 21

Пример кода на Python

import numpy as np def generate_vectors(): from itertools import product

Пример кода на Python import numpy as np def generate_vectors(): from itertools
as p return(p(range(2), repeat=2)) def f(x): return(x[0] or x[1]) x_vectors = generate_vectors() t_vector = np.array([f(x) for x in x_vectors]) x_vectors = generate_vectors() nu = 0.3 weight = np.array([0., 0.]) epoch = 1 error = 1

Слайд 22

Пример кода на Python

while error != 0: x_vectors = generate_vectors() print(f'\n*************** epoch

Пример кода на Python while error != 0: x_vectors = generate_vectors() print(f'\n***************
{epoch} ***************') print(f'weight = {weight}') print(f'_____________________________________________') error = 0 for i, x_vec in enumerate(x_vectors): net = sum(x_vec[j]*weight[j] for j in range(2)) if net >= 0.5: y = 1 else: y = 0 delta = t_vector[i] - y err = t_vector[i] - net print(f'| net = {net:.3f} | y = {y}| t = {t_vector[i]} | err = {abs(err):.3f} |') if delta != 0: error += 1 weight = [weight[j] + nu * abs(err) * x_vec[j] for j in range(2)] epoch += 1 print(f'¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯') print(f'{error} errors\n')

Слайд 23

Пример кода на Python

*************** epoch 1 ***************
weight = [0. 0.]
_____________________________________________
| net =

Пример кода на Python *************** epoch 1 *************** weight = [0. 0.]
0.000 | y = 0| t = 0 | err = 0.000 |
| net = 0.000 | y = 0| t = 1 | err = 1.000 |
| net = 0.000 | y = 0| t = 1 | err = 1.000 |
| net = 0.600 | y = 1| t = 1 | err = 0.400 |
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
2 errors
*************** epoch 2 ***************
weight = [0.3, 0.3]
_____________________________________________
| net = 0.000 | y = 0| t = 0 | err = 0.000 |
| net = 0.300 | y = 0| t = 1 | err = 0.700 |
| net = 0.300 | y = 0| t = 1 | err = 0.700 |
| net = 1.020 | y = 1| t = 1 | err = 0.020 |
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
2 errors
*************** epoch 3 ***************
weight = [0.51, 0.51]
_____________________________________________
| net = 0.000 | y = 0| t = 0 | err = 0.000 |
| net = 0.510 | y = 1| t = 1 | err = 0.490 |
| net = 0.510 | y = 1| t = 1 | err = 0.490 |
| net = 1.020 | y = 1| t = 1 | err = 0.020 |
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
0 errors

Слайд 24

Персептрон и n-слойные сети

Источник: https://habr.com/post/312450/

Персептрон и n-слойные сети Источник: https://habr.com/post/312450/

Слайд 25

Персептрон и n-слойные сети

Источник: https://habr.com/post/312450/

Персептрон и n-слойные сети Источник: https://habr.com/post/312450/
Имя файла: Введение-в-нейросети.pptx
Количество просмотров: 77
Количество скачиваний: 1