Эссе о разработке игр, мышлении и книгах

Kaggle: Digit Recognizer (MNIST) точность 0.99585

Примеры цифр из набора MNIST.

Примеры цифр из набора MNIST.

Продолжаю путешествие по занимательным землям Deep Learning.

В прошлый раз я учился заводить deep learning на локальной машине и делал совсем детскую, искусственную и неспецифическую для DL задачу.

В этот раз решил попробовать что-то более диплёрничное — научиться решать задачи на Kaggle. Есть предположение, что Kaggle — самый простой и интересный способ учить DL.

На этом сервисе есть задачи для новичков, одну такую — Digit Recognizer — я выбрал для тренировки. Соревнование по распознаванию рукописных цифр из набора MNIST. Этот набор должны были встречать даже люди далёкие от ML.

Notebook с решением и комментариями опубликован на github.

На момент отправки решение занимало 467 место из ~7000. На мой взгляд неплохой результат, учитывая, что первые мест 150 занимают читерские решения. MNIST — общедоступный набор данных, их можно скачать вне kaggle и залить в качестве решения готовые ответы, или переобучить сеть на полном наборе.

Далее

Просто о связи линейной алгебры и нейронных сетей

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

  1. Linear Algebra
  2. Inner Product Spaces
  3. The Perceptron, and All the Things it Can’t Perceive
  4. Neural Networks and the Backpropagation Algorithm

Остальной блог тоже интересен. У автора много вводных статей на математические и программистские темы.

Нельзя просто так взять и запустить Deep Learning

Очень известный мем с Боромиром.

Продолжаю разбираться с Deep Learning.

Решил попробовать его на практике: сам придумал лабу, сам сделал, сам себя похвалил.

Целью было построить простейшую, но более-менее полную цепочку обучения модели с помощью Keras+TensorFlow и запустить её на своей машине.

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

А в этом посте покритикую инфраструктуру всего этого.

Далее

MIT 6.S191: галопом по Deep Learning

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

Поэтому следующей целью выбрал курс MIT 6.S191: Introduction to Deep Learning.

Потому что MIT и по темам лекций видно широкое покрытие темы.

Курсом очень доволен.

Далее

Как учить и не учить математике

Количество успешных решений и процент успешных попыток отправки решений задач в курсе.

Количество успешных решений и процент успешных попыток отправки решений задач в курсе.

Чёрт дёрнул вспоминать вышку. Я планирую немного забатанить машинное обучение, но сперва решил вспомнить, чему меня в университетах учили. Тем более, что математического анализа мне иногда не хватает.

Поэтому я нагуглил на Stepik курс с пятью звёздами сразу в двух частях (1, 2) за авторством Александра Храброва.

Первую часть я прошёл за 6 полных дней на 100%. Вторую, с перерывами, дней за 10 на 87%: стало жалко времени и сил. График в заголовке намекает на причину :-)

Попутно накопил заметок о курсе, о том как «правильно» учить математике. И как ей учить не надо.

Само собой, всё с моей колокольни.

Далее