Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Метод Бенджамина Франклина для чтения книг по программированию

Программирование *Профессиональная литература Машинное обучение *Учебный процесс в IT
Перевод
Посмотрим правде в глаза, книги по программированию — отстой. Эти общие книги по распределённым системам, науке о данных и так далее — их можно читать бесконечно. Но за редким исключением у практических руководств по языку/фреймворку/СУБД/кексопечке есть нечто общее. Зверюшка на обложке, примеры вычурных приложений, они так легко забываются, так банальны, настолько… ничему не учат.

Думаю, я наконец-то понял, почему они мне не нравятся. И не только потому что они учат навыкам, которые скоро станут устаревшими. Это их педагогический подход в целом. Алгоритм обучения как будто такой: напиши эти программы, где мы говорим всё, что нужно сделать, и теперь ты знаешь этот язык/фреймворк/базу данных/кексопечку. Главное в этих книгах — длинные листинги кода, которые читатель должен воспроизвести. Вот пример из одной из лучших книг этой категории.

class User < ApplicationRecord
  attr_accessor :remember_token
  before_save { self.email = email.downcase }
  validates :name,  presence: true, length: { maximum: 50 }
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence: true, length: { maximum: 255 },
                    format: { with: VALID_EMAIL_REGEX },
                    uniqueness: { case_sensitive: false }
  has_secure_password
  validates :password, presence: true, length: { minimum: 6 }

  # …далее ещё 30 строчек...
end

Традиционно есть два способа изучить такую страницу:

  1. Ввести каждую строку кода вручную.
  2. Скопипастить код с их сайта, возможно, поиграться и внести небольшие изменения.

В первом случае, как и в лекциях, код переходит со страницы книги на экран читателя, минуя мозг. Второй вариант — это как пытаться собирать автомобили, разбирая ремень безопасности и стереосистему: вы просто играетесь с маленькими кусочками. Оба варианта не подходят для обучения.
Читать дальше →
Всего голосов 31: ↑27 и ↓4 +23
Просмотры 32K
Комментарии 17

«Туда и обратно» для нейронных сетей, или обзор применений автокодировщиков в анализе текстов

Блог компании «Антиплагиат» Семантика *Алгоритмы *Математика *Машинное обучение *
Мы уже писали в самой первой статье нашего корпоративного блога о том, как работает алгоритм обнаружения переводных заимствований. Лишь пара абзацев в той статье посвящена теме сравнения текстов, хотя идея достойна гораздо более развернутого описания. Однако, как известно, обо всем сразу рассказать нельзя, хоть и очень хочется. В попытках воздать должное этой теме и архитектуре сети под названием «автокодировщик», к которой мы питаем очень теплые чувства, мы с Oleg_Bakhteev и написали этот обзор.


Источник: Deep Learning for NLP (without Magic)

Как мы упоминали в той статье, сравнение текстов у нас было “смысловое” – мы сопоставляли не сами текстовые фрагменты, а векторы, им соответствующие. Такие векторы получались в результате обучения нейронной сети, которая отображала текстовый фрагмент произвольной длины в вектор большой, но фиксированной размерности. Как получить такое отображение и как научить сеть выдавать нужные результаты – отдельный вопрос, о которой и пойдет речь ниже.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 12K
Комментарии 4

Ищем аномалии и предсказываем сбои с помощью нейросетей

Блог компании НПО Криста Машинное обучение *DevOps *Искусственный интеллект

image


Промышленная разработка программных систем требует большого внимания к отказоустойчивости конечного продукта, а также быстрого реагирования на отказы и сбои, если они все-таки случаются. Мониторинг, конечно же, помогает реагировать на отказы и сбои эффективнее и быстрее, но недостаточно. Во-первых, очень сложно уследить за большим количеством серверов – необходимо большое количество людей. Во-вторых, нужно хорошо понимать, как устроено приложение, чтобы прогнозировать его состояние. Следовательно, нужно много людей, хорошо понимающих разрабатываемые нами системы, их показатели и особенности. Предположим, даже если найти достаточное количество людей, желающих заниматься этим, требуется ещё немало времени, чтобы их обучить.


Что же делать? Здесь нам на помощь спешит искусственный интеллект. Речь в статье пойдет о предиктивном обслуживании (predictive maintenance). Этот подход активно набирает популярность. Написано большое количество статей, в том числе и на Хабре. Крупные компании вовсю используют такой подход для поддержки работоспособности своих серверов. Изучив большое количество статьей, мы решили попробовать применить этот подход. Что из этого вышло?

Читать дальше
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 7.9K
Комментарии 4

Детектирование аномалий с помощью автоенкодеров на Python

Python *Программирование *Машинное обучение *
Tutorial

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

Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 10K
Комментарии 4

Самоучитель клингонского

Блог компании «Антиплагиат» Семантика *Математика *Машинное обучение *Natural Language Processing *

Пару лет назад мы рассказали о том, как в системе Антиплагиат устроен поиск русского перевода английских статей. Естественно, без машинного переводчика в алгоритме не обойтись. В основе машинного переводчика, конечно, лежит машинное обучение, которое, в свою очередь, требует весьма значительного количества «параллельных предложений», т.е. одинаковых по смыслу предложений, написанных на двух языках. Значительное количество — это миллионы предложений, и чем больше, тем лучше. Понятно, что для русско-английской пары найти такую базу (в том числе и в открытом доступе) реально. А что делать с теми языковыми парами, для которых параллельных предложений принципиально не может быть слишком много?


Казалось бы, не имея в распоряжении большого объема обучающих примеров, обучить систему машинного перевода невозможно. Но на помощь приходит идеология Unsupervised Learning, или «обучение без учителя». Ну а чтобы задача была действительно интересной (особенно порадует она фанатов вселенной Стартрека), мы будем обучать наш машинный переводчик для пары языков «английский – клингонский».


Источник картинки: Собственное творчество от команды Антиплагиата


А самым подходящим девизом к дальнейшему рассказу о применении Unsupervised Learning будет знаменитая выдержка из Инструкции клингонского почетного караула «Если не можешь контролировать себя, тебе не дано командовать другими».


bISeH'eghlaH'be'chugh latlh Dara'laH'be'
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 5.4K
Комментарии 0