ОЦЕНКА
КАЧЕСТВА
ОБУЧЕНИЯ
НЕЙРОСЕТИ
АКТИВАЦИОННЫЕ
ФУНКЦИИ
ИСКУССТВЕННЫЙ
НЕЙРОН
Маккалок Дж., Питтс У. Логические исчисления идей, относящихся к нервной деятельности // Автоматы. М.: ИЛ, 1956
# Входной полносвязный слой
model.add(Dense(800, input_dim=784, activation="relu"))
# Выходной полносвязный слой
model.add(Dense(10, activation="softmax"))
MNIST
НЕЙРОСЕТЬ ДЛЯ
Полулинейная функция (RELU)
Rectified Linear Unit
(ReLU)
(softmax)
ФУНКЦИЯ МЯГКОГО МАКСИМУМА
- количество нейронов в слое
- выходное значение i-го нейрона до активации
Почему
Softmax?
Источник: https://datascience.stackexchange.com/questions/23159/in-softmax-classifier-why-use-exp-function-to-do-normalization
Требования к функции активации для задач классификации:
Пример:
График
exp(x)
Bias
В НЕЙРОНАХ
МОДЕЛЬ
ИСКУСТВЕННОГО НЕЙРОНА
СМЕЩЕНИЕ
В НЕЙРОННЫХ СЕТЯХ
1
wb
СМЕЩЕНИЕ
В НЕЙРОННЫХ СЕТЯХ
1
wb
ОБУЧАЮЩАЯ, ПРОВЕРОЧНАЯ И ТЕСТОВАЯ ВЫБОРКИ
Подбор гипер-параметров модели
Параметры модели машинного обучения
Гиперпараметры модели
Подбор гиперпараметров
Наборы данных
для обучения
НАБОРЫ ДАННЫХ
ДЛЯ ОБУЧЕНИЯ
Демонстрация использования обучающей, проверочной и тестовой выборок в Keras
Схема обучения нейронной сети
Делим данные на три набора
Обучаем модель на обучающем и проверочном наборе
Проверка обобщающей способности сети
ПЕРЕОБУЧЕНИЕ
Точность распознавания
Проблема
переобучения
Сеть может научиться распознавать особенности выборки, а не данных
Причины переобучения
Как бороться с переобучением
СЛОЙ DROPOUT
Dropout
СЛОЙ
Dropout
СЛОЙ
Dropout
СЛОЙ
Dropout
СЛОЙ
# Входной полносвязный слой
model.add(Dense(800, input_dim=784, activation="relu"))
# Слой Dropout
model.add(Dropout(0.5))
# Выходной полносвязный слой
model.add(Dense(10, activation="softmax"))
Dropout в Keras
СЛОЙ DROPOUT
Статья с подробным описанием Dropout:
Предотвращение переобучения:
Слой BatchNormalization
Нормализация
Виды нормализации
Алгоритмы машинного обучения лучше работают с данными в нормализованном виде
ПАКЕТНАЯ
НОРМАЛИЗАЦИЯ
Выполняется на уровне мини-выборки
Рассчитывается по формулам:
параметры, которые сеть изучает в процессе обучения
model = Sequential()
model.add(BatchNormalization(input_shape=(28, 28, 1)))
model.add(Conv2D(32, (3, 3), padding='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(BatchNormalization())
model.add(Conv2D(64, (3, 3), padding='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
Пакетная нормализация
в Keras
СПАСИБО
ЗА ВНИМАНИЕ