#7 CS50 на русском 2016 — Машинное обучение и Python

Приветствую Вас, дорогие друзья!
Неделя 7 курса Гарвардского университета по основам программирования CS50 2016 года на русском языке. На Неделе 7 мы вплотную начнем рассматривать основы языка Python, узнаем какой алгоритм применяется для распознавания содержания изображений и с головой окунемся в приложения группировки текста по смыслу. На Неделе 7 мы узнаем о том, что такое машинное обучение и вспомним что такое Интернет с предыдущей недели.

00:00:00 — Вступление
00:01:47 — Введение в машинное обучение
00:11:21 — Классификация изображений
00:17:13 — Плоский мир
00:19:35 — Линейный, Плоский, Объемный, и другие миры
00:26:19 — Введение в Python
00:30:55 — Обучение с учителем
00:43:52 — Python для классификации изображений
00:56:01 — Глубокое обучение
01:00:07 — Глубокое обучение в автомобилях
01:03:43 — Кластеризация текста
01:17:07 — Итоги

Словарь Недели 7

  1. Machine Learning — машинное обучение
  2. Image Recognition — распознавание изображений
  3. Natural Language Processing — обработка естественного языка
  4. K-Nearest Neighbors Algorithm — метод k ближайших соседей
  5. Lineland — Лайнландия (линейный одномерный мир)
  6. Flatland — Флатландия (плоский двумерный мир)
  7. Spaceland — Спейсландия (объемный трехмерный мир)
  8. Deep learning — глубинное или глубокое обучение
  9. Semi-supervised learning -0бучение с частичным привлечением учителя

Что такое машинное обучение?

Люди по-разному интерпретируют понятие машинное обучение. Для кого-то это понятие ассоциируется с кучей роботов, как было не раз продемонстрировано в Голливудских фильмах. Для кого-то машинное обучение это не что иное, как комната с кучей серверов или сложные математические функции. На самом деле машинное обучение это подраздел искусственного интеллекта, основанный на алгоритмах, которые могут обучаться. На сегодняшний день существует масса различных приложений, которые используют алгоритмы машинного обучения. Среди них: поисковые системы, приложения распознавания изображений, приложения распознавания голоса, обработка естественного языка. На первый взгляд эти приложения создают впечатления сложных алгоритмических закономерностей. Так и есть, однако в их основе лежат простые принципы, базирующиеся на вычислении расстояния к ближайшей известной точке и являются основой алгоритма классификатора ближайшего соседа.

Для вычисления вышеупомянутых расстояний используется широко известная теорема Пифагора, которую все изучали в школе. Примечательным является тот факт, что теорема Пифагора отлично работает не только в одно-, двух-, трехмерном измерении, но и в значительно больших измерениях. Удивлены? Да-да, вы все правильно поняли. К сожалению в школьной программе, в университете основной упор делается на одно-, двух- и трехмерные измерения. Однако в реальности существуют 32-мерные, 64-мерные и более измерения.

Алгоритмы машинного обучения были известны еще в 80-х годах ХХ столетия, однако ввиду отсутствия достаточной вычислительной мощности так и остались в теории на бумаге. Еще одной проблемой в то время было отсутствие доступа к огромному количеству информации, которую можно использовать в качестве обучающего набора.

Распознавание изображений

Машинное обучение используется в большом количестве различных приложений. На Неделе 7 мы будем акцентировать внимание на распознавании изображений и обработке естественного языка. Первым приложением, которое приходит в голову при упоминании фразы «распознавание изображений» является, конечно же, Facebook. В действительности Facebook использует алгоритм глубинного обучения, который не является столь же тривиальным, как пример на Неделе 7. Однако даже сложный алгоритм распознавания изображений компании Facebook или компании Tesla берет свое начало из алгоритма, состоящего всего из 3 строк. Как Вы уже поняли из названия, эти строки написаны на языке Python, обладающим удивительной читабельностью и простотой. Данный алгоритм использует определенное количество обучающего набора изображений и на основании этих изображений делает вывод о содержании того или иного изображения.

Думаю Вас определенно интересует точность такого алгоритма. Спешу сообщить, что при наличии обучающего набора из 100 изображений, точность распознавания составляет 63%. Однако если воспользоваться обучающим набором, состоящим из 1000 изображений, точность составит, внимание, 97%. В этом случае речь шла о распознавании черно-белых изображений цифр размером 8 на 8 пикселей.

Когда мы рассмотрим пример с цветными изображениями размером 32 на 32 пикселя, то столкнемся с некоторыми сложностями. Проблема заключается в том, что изображение, на котором, например, сфотографирована лошадь может отличаться от другого изображения с лошадью по многим параметрам. Это может быть ракурс съемки, размер, положение, освещенность и так далее. В этом случае алгоритм распознавания изображений сталкивается с настоящими сложностями. И тогда в помощь приходят алгоритмы глубокого обучения, которые использует Facebook и Tesla в своих автопилотах, где точность распознавания составляет 95%.

В этом случае возникает еще один логический вопрос: «А достаточно ли иметь точно при распознавании изображений в 95%?» Ответ на этот вопрос Вы сможете найти на Неделе 7 курса CS50 по основам программирования.

Группировка (кластеризация) текста

А как на счет задачки по группировке текста по его содержанию. Например, у Вас есть тысячи фильмов, содержащих название и описание и стоит задача отсортировать их по жанрам. Комедии к комедиям, мультфильмы к мультфильмам, боевики к боевикам, трейлеры к трейлерам. Интересная задача, не так ли? В этом Вам поможет машинное обучение, тот же самый базовый алгоритм классификатора ближайшего соседа. Реализация такого алгоритма выглядит простой и понятно, конечно же, с использованием языка Python.

Одним из значащих событий для всех причастных к алгоритмам обучения стало мероприятие, произошедшее в марте 2016 года. Это был турнир между компьютером и чемпионом мира по игре Go, которая по количеству комбинаций во много превышает шахматы. Этот турнир закончился со счетом 4:1 в пользу компьютера. Это была демонстрация мощи машинного обучения всему миру.

Метод слепой печати

Благодарю всех, кто прочел до этого места и в качестве бонуса хочу сделать ссылку на ресурс обучения слепой печати. Слепая печать — просто необходимость для программиста, так же, как все учились писать в начальной школе, скоростная слепая печать позволяет программисту повысить свою эффективность. Если вам удастся освоить данный полезный скил вы сможете заработать дополнительный балл в свою копилку при прохождении собеседования. Кроме того, может возникнуть ситуация, которая позволит произвести впечатление на девушку благодаря наличию такого навыка. Для начала измеримой целью для вас может быть 200 знаков в минуту, но нет предела совершенству :).

Существует огромный перечень онлайн-ресурсов, которые позволят изо дня в день оттачивать свое мастерство. Ссылка на вышеупомянутый сайт будет отличным инструментов для новичков, детей и подростков. Ведь программа больше похожа на игру, нежели на скучный тренажер. Для тех, кто уже с клавиатурой на «ты» рекомендую сайт Клаварог. Простой и понятный сайт с понятным и богатым функционалом.

Приятного просмотра, дорогие друзья!

Поделиться:

Оцените запись:
Notice: Undefined variable: thumbnail in /home/level80/level-80.com/www/wp-content/plugins/wp-postratings/wp-postratings.php on line 1176
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (8 оценок, среднее: 4,88 из 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*Комментарий - обязательное поле для ввода
* Имя - обязательное поле для ввода
* Email - обязательное поле для ввода