Тёмный

Лекция 3. Обучение нейронных сетей в Keras. (Анализ данных на Python в примерах и задачах. Ч2) 

Computer Science Center
Подписаться 161 тыс.
Просмотров 21 тыс.
50% 1

compscicenter.ru/
Пример обучения нейронной сети. Критерии качества в Keras. Инициализация весов нейронной сети в Keras.
Лекция №3 в курсе "Анализ данных на Python в примерах и задачах. Часть 2" (осень 2018).
Преподаватель курса: Вадим Леонардович Аббакумов
Страница лекции на сайте CS центра: bit.ly/2Q6S6mV
Все видео курса: bit.ly/2NEwnWR

Опубликовано:

 

25 сен 2018

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 21   
@megabyte_ga
@megabyte_ga 3 года назад
Очень нужная и полезная лекция! Каждое слово на вес золота! Спасибо!
@LearnToCode
@LearnToCode 5 лет назад
50 эпох, один внутренний слой на 6 нейронов. loss='mse', optimizer='adam'. Качество модели на тестовых данных около 90% tn_2 = initializers.TruncatedNormal(mean=0.0, stddev=0.05, seed=12345) init_3 = initializers.Constant(value = 1e-3) model3 = Sequential() model3.add(Dense(6, input_dim=13, activation='relu', kernel_initializer=tn_2, bias_initializer=init_3)) # model3.add(Dense(10, activation='relu', kernel_initializer=tn_2, bias_initializer=init_3 )) model3.add(Dense(3, activation='softmax', kernel_initializer=tn_2, bias_initializer=init_3)) model3.compile(loss='mse', optimizer='adam', metrics=['accuracy']) # Training a model model3.fit(X_train, y_train_bin, epochs=50, batch_size=10) >>>Epoch 50/50 119/119 [==============================] - 0s 229us/step - loss: 0.0556 - acc: 0.9244
@Jo_ForFun
@Jo_ForFun Год назад
У тебя же первый внутренний слой (а не один внутренний) на 6 нейронов. Потом еще второй на 10 и выходной слой 3.
@simplechannel7859
@simplechannel7859 5 лет назад
Отличная лекция! Спасибо!
@user-sh8bl3ij9v
@user-sh8bl3ij9v 4 года назад
Спасибо за знания.
@gleb2971
@gleb2971 5 лет назад
Косинусное расстояние хорошо себя ведет с текстами. Там как раз «смыслы» текстов/фраз кодируются векторами. Косинусное расстояние как мера схожести тут как раз кстати (ведь два текста, описанные сонаправленными векторами, один из которых в n раз больше другого, можно смело записывать одинаковыми по теме/смыслу, просто один из них побольше, длиннее и т.д.)
@yakonick
@yakonick 3 года назад
Также, думаю, это может пойти в рекомендательные системы. Если мы фильмы, понравившиеся человеку, будем кодировать векторами, то схожие вектора помогут натолкнуть, какой фильм предложить человеку
@yakonick
@yakonick 3 года назад
// Хоть эта система и устарела уже((
@kirillkrasikov3209
@kirillkrasikov3209 2 года назад
Чтобы результаты полностью воспроизводились (получались одни и те же loss и accuracy при одинаковом зерне), нужно еще в model.fit передать параметр shuffle = False, иначе после каждой эпохи данные будут перемешиваться случайным образом и итоговый результат будет чуть отличаться. Курс лекций просто отличный, пока это лучшее что я видел по нейронным сетям.
@user-ou8bf3rm3o
@user-ou8bf3rm3o 5 лет назад
В Keras Sequential значит, что блоки соединяются последовательно, при этом не обязательно получается сеть прямого распространения. Сеть может быть такой (не прямого распространения): model = Sequential() model.add(Conv1D()) model.add(LSTM()) model.add(Flatten()) model.add(Dense())
@Vadim_Abbakumov
@Vadim_Abbakumov 5 лет назад
Это верно. Вы считаете, что если бы я так и сказал на 3 лекции, то слушателем было бы понятнее?
@user-ou8bf3rm3o
@user-ou8bf3rm3o 5 лет назад
Вадим Леонардович, меньше шансов запутаться! :-)
@courier1016
@courier1016 2 года назад
@@Vadim_Abbakumov Вадим Леонардович, а почему вы не делали стандартизацию перед подачей в нейронную сеть?
@RenescoRocketman
@RenescoRocketman 5 лет назад
Предположение насчет причины "затыка" в обучении на данных по винишку: Все входные иксы у нас положительные. Веса мы инициализировали с распределением от ноля, т.е. половина изначально отрицательные. Не получилось так, что половина нейронов на релу сразу улетели в ноль, получив отрицательный вход, и никаким образом оттуда уже не вылезли? Может стоит попробовать задавать начальное распределение весов с ожиданием 0,5, а не 0, или использовать сигмоид или елу. UPD: попробовал поиграться с приложенным файлом. Замена активационной функции и прочие штуки ничего особенно не дают. Видимр, просто из этих данных не получится точно определить принадлежность вина. Очень странно, что не получилось хотя бы "переобучить" сетку на тестовых данных. Хотябы тестовые данные она должна была по конкретным значениям запомнить.. странно. UPD2: Все-же доточил до 98 на обучающей / 93 на тестовой. Сигмоид, 1 скрытый слой и аж 100 нейронов в нем. Перебор, конечно, но работает же.
@Vadim_Abbakumov
@Vadim_Abbakumov 5 лет назад
Я бы начал с того, что перебирал зерна датчика. Долго и упорно...
@RenescoRocketman
@RenescoRocketman 5 лет назад
Да, спасибо за совет. Я уже послушал следующую лекцию и понял, что любители использования избыточных ресурсов будут наказаны:) Попробую с меньшим количеством решить.
@user-ou8bf3rm3o
@user-ou8bf3rm3o 5 лет назад
Вадим Леонардович, это тяжко искать золотое ядро. Лучше архитектуру улучшить или по-хитрому данные подготовить.
@Vadim_Abbakumov
@Vadim_Abbakumov 5 лет назад
@@user-ou8bf3rm3o Это тяжко, согласен. Поэтому запускаем на 100 процессорах обучение с разными инициализациями. Время подбора сократилось в 100 раз... И так далее. GPU хорошо ускоряет обучение. Игры с архитектурами до получения бенчмарка рискованы - переобучением.
@LearnToCode
@LearnToCode 5 лет назад
@@Vadim_Abbakumov я поигрался с внешними параметрами optimizer и loss. 97% точность на тренировочной выборке и 86% на тестовом наборе при loss='mse', optimizer='adam'. При смене relu на sigmoid или при увеличении числа слоев с relu качество модели растет еще больше
@MinisterDorado
@MinisterDorado Год назад
28:10 Ты тычешь, а годы идут. LOL
@user-os3ms4xj1g
@user-os3ms4xj1g 2 года назад
Ничего не изменяя в коде, который представлен на экране, с первой же попытки получил Epoch 300/300 12/12 [==============================] - 0s 2ms/step - loss: 0.2315 - accuracy: 0.8992. Удивительно, как же сильно мне повезло) Со второй попытки получил Epoch 300/300 12/12 [==============================] - 0s 4ms/step - loss: 0.1937 - accuracy: 0.9160 На 3 и 4 попытки получилось 94.96% Epoch 300/300 12/12 [==============================] - 0s 4ms/step - loss: 0.1408 - accuracy: 0.9496
Далее
Is it Cake or Fake ? 🍰
00:53
Просмотров 3,5 млн
Tutorial 😍 @elsarca #danilisboom #elsarca
00:16
Просмотров 998 тыс.
Is it Cake or Fake ? 🍰
00:53
Просмотров 3,5 млн