Изучи
| Ты узнаешь:
Ты научишься:
проектировать искусственный нейрон в электронной таблице;
вычислять функцию единичного скачка и среднеквадратичную ошибку.
В случае, когда нейросеть состоит из большого количества нейронов, вводят термин «слой». Слои делятся на три основных типа: входной (синий), скрытый (фиолетовый) и выходной (зеленый). Соответственно, есть входной слой, который получает информацию, n скрытых слоев, которые ее обрабатывают, и выходной слой, который выводит результат.
Нейроны оперируют числами в диапазоне [0, 1] или [–1, 1]. Продемонстрируем расчет результата нейронной сети с использованием логистической функции и ее ошибку, используя среднеквадратичную ошибку.
Тренировочный сет, или обучающая выборка (датасет), – набор данных, на которых нейронная сеть будет обучаться. В нашем случае исключающего или (xor) у нас всего 4 разных исхода, то есть у нас будет 4 тренировочных сета: 0xor0 = 0, 0xor1 = 1, 1xor0 = 1,1xor1 = 0.
Итерация – это своеобразный счетчик, который увеличивается каждый раз, когда нейронная сеть проходит один набор данных.
Важно не путать итерацию с эпохой и понимать последовательность их инкремента. Сначала n раз увеличивается итерация, а потом уже эпоха, и никак не наоборот.
Эпоха – при инициализации нейронной сети эта величина устанавливается в 0 и имеет потолок, задаваемый вручную. Чем больше эпоха, тем лучше натренирована сеть, и тем лучше ее результат. Эпоха увеличивается каждый раз, когда мы проходим весь набор обучающих выборок, в нашем случае 4 сета, или 4 итерации.
Ошибка – формируется каждую эпоху и должна идти на спад. Если этого не происходит, значит, вы что-то делаете не так. Ошибку можно вычислить разными способами, но мы рассмотрим два: среднеквадратичную ошибку и среднеквадратичное отклонение.
Формула вычисления среднеквадратичной ошибки:
Cреднеквадратичное отклонение вычисляется по формуле:
O1, O2, …, On – фактический сигнал, полученный на выходе (входе);
A1, A2, …, An – идеальный сигнал, который должен быть получен на выходе (входе);
n – количество датасетов.
I1, I2 – входные нейроны;
H1, H2 – скрытые нейроны;
O1 – выходной нейрон.
Запишем значения параметров в Excel:
Вычисляем взвешенную сумму для первого входа:
Взвешенная сумма первого входа: H1input = 0 ⋅ 0,13 + 1 ⋅ (–0,58) = –0,58.
Используем сигмоидную функцию активации для первого входа. В этом нам поможет встроенная функция экспоненты (EXP) в MS Excel: H1output = sigmoid(–0,58) = 0,36.
Вычисляем взвешенную сумму для второго входа:
Взвешенная сумма второго входа: H2input = 0 ⋅ 0,52 + 1 ⋅ 0,63 = 0,63.
Используем сигмоидную функцию активации для второго входа: H2output = sigmoid(0,63) = 0,65.
Вычисляем взвешенную сумму для выхода:
O1input = 0,36 ⋅ 2,5 + 0,65 ⋅ (–0,3) = 0,7.
Используем сигмоидную функцию активации для выхода.
O1output = sigmoid(0,7) = 0,67.
Вычисляем ошибку по формуле, используя встроенная функцию СТЕПЕНЬ в MS Excel:
Среднеквадратичная ошибка O1ideal = 1 (0xor1 = 1).
Error = ((1 – 0,67)2)/1 = 0,11.
Результат на выходе нейрона будет равен 0,67, а среднеквадратичная ошибка будет равна 11 %.
Кроме сигмоидной функции, существует ряд и других фукнции активации, которые используются при обучении искусственной нейронной сети. Функция единичного скачка – это простой вид функции активации, где выход нейрона может быть равен только 0 или 1.
Графически эту функцию можно изобразить следующим образом:
Математическая запись функции единичного скачка выгдядит так:
Если взвешенная сумма больше определенного порога b, то выход нейрона равен 1.
Как ее можно использовать? Предположим, что мы поедем на море только тогда, когда взвешенная сумма больше или равна 5. Если взвешенная сумма = 2, выход нейрона = 0, то мы никуда не едем. Если взвешенная сумма = 7, значит, выходной сигнал нашего нейрона равен 1, и мы едем на море. Нейрон зависит от взвешенной суммы, и если она получается больше его порога, то нейрон выдает выходной сигнал, равный 1.
|