Как стать автором
Поиск
Написать публикацию
Обновить
757.68

Машинное обучение *

Основа искусственного интеллекта

Сначала показывать
Порог рейтинга
Уровень сложности

Что такое свёрточная нейронная сеть

Время на прочтение13 мин
Количество просмотров272K


Введение


Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


Но классический, и, возможно, самый популярный вариант использования сетей это обработка изображений. Давайте посмотрим, как СНС используются для классификации изображений.


Задача


Задача классификации изображений — это приём начального изображения и вывод его класса (кошка, собака и т.д.) или группы вероятных классов, которая лучше всего характеризует изображение. Для людей это один из первых навыков, который они начинают осваивать с рождения.


Читать дальше →

Логика сознания. Часть 4. Секрет памяти мозга

Время на прочтение21 мин
Количество просмотров51K
Когда с нами что-то происходит наш мозг фиксирует это, создавая воспоминания. Изменения, которые при этом происходят с мозгом, принято называть энграммами или следами памяти.

Вполне естественно, что понимание того, как выглядят следы памяти – основной вопрос изучения мозга. Без этого невозможно построить никакую биологически достоверную модель его работы. Понимание строения памяти непосредственно связано с пониманием того, как мозг кодирует информацию и как он ей оперирует. Все это, пока, — неразгаданная загадка.

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

Глубинное обучение: возможности, перспективы и немного истории

Время на прочтение7 мин
Количество просмотров20K
Последние несколько лет словосочетание «глубинное обучение» всплывает в СМИ слишком часто. Различные журналы вроде KDnuggets и DigitalTrends стараются не упустить новости из этой сферы и рассказать о популярных фреймворках и библиотеках.

Даже популярные издания вроде The NY Times и Forbes стремятся регулярно писать о том, чем заняты ученые и разработчики из области deep learning. И интерес к глубинному обучению до сих пор не угасает. Сегодня мы расскажем о том, на что способно глубинное обучение сейчас, и по какому сценарию оно будет развиваться в будущем.



/ фото xdxd_vs_xdxd CC
Читать дальше →

Batch Normalization для ускорения обучения нейронных сетей

Время на прочтение5 мин
Количество просмотров77K

В современном мире нейронные сети находят себе всё больше применений в различных областях науки и бизнеса. Причем чем сложнее задача, тем более сложной получается нейросеть.


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


В какой-то момент, знакомясь с представленным в 2015 году методом Batch Normalization от компании Google мне, для решения задачи связанной с распознаванием лиц, удалось существенно улучшить скорость работы нейросети.



За подробностями прошу под кат.

Читать дальше →

Data Science Week 2016

Время на прочтение2 мин
Количество просмотров4.5K
Хабр, привет! Приглашаем вас на форум Data Science Week, который проходит при поддержке DCA.

Мероприятие пройдёт 8-9 и 12-13 сентября в Москве. Организаторы обещают более 20 выступлений от спикеров из Microsoft, Rambler&Co, Сбербанка, Авито, DCA, E-Contenta, Segmento.

Вот некоторые из тем:
Читать дальше →

ML boot camp 2016 новичок в ТОП 10

Время на прочтение5 мин
Количество просмотров8K
Не так давно закончились соревнования по машинному обучению от Mail.ru. Я занял 9 место, и, собственно, хотел бы поделиться тем, как это у это меня получилось. Если коротко, то повезло.


Читать дальше →

Приглашаем на второй хакатон Neurohack

Время на прочтение2 мин
Количество просмотров5.7K


9 сентября в Москве при поддержке Mail.Ru Group стартует Neurohack 2.0 — это 48-часовой марафон, в ходе которого вы сможете воплотить свои идеи, связанные с темой искусственного интеллекта и нейронных сетей. Хакатон проводится благодаря сообществу ведущих ученых России — Science Guide.
Читать дальше →

Логика сознания. Часть 3. Голографическая память в клеточном автомате

Время на прочтение10 мин
Количество просмотров29K
Ранее мы описали клеточный автомат, в котором могут возникать волны, имеющие хитрый внутренний узор. Мы показали, что такие волны способны распространять информацию по поверхности автомата. Оказалось, что любое место автомата может быть, как приемником, так и источником волн. Чтобы принять волну в каком-либо месте, достаточно посмотреть, какой узор получается в нем в момент прохождения волны. Если этот узор запомнить и впоследствии воспроизвести в том же месте, то от этого узора распространится волна, повторяющая на своем пути узор исходной волны.

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

Автомат, который мы описываем обладает памятью. Точнее, памятью обладают все его элементы. Память элемента специфична. Единственное, что видит элемент автомата – это узор, составленный из активности своих соседей. Единственное, как элемент может отреагировать на тот или иной узор – это либо самому стать активным, либо, наоборот, выключиться. Память элемента – это набор запомненных им узоров с указанием, как на них реагировать: включаться или выключаться.
Читать дальше →

Data Science Week 2016. Форум о технологиях работы с данными

Время на прочтение2 мин
Количество просмотров4.5K
Всем привет! Рады пригласить вас на второй форум Data Science Week, который пройдет 8, 9, 12 и 13 сентября в Москве. Вас ждет более 20 открытых мастер-классов и лекций от специалистов из таких компаний как Microsoft, Rambler&Co, Сбербанк, Авито, DCA, E-Contenta, Segmento.

Каждый день будет посвящен отдельной теме: взаимоотношения с клиентом, внутренняя оптимизация, Sberbank Data Day, искусственный интеллект.

image
Читать дальше →

Логика сознания. Часть 2. Дендритные волны

Время на прочтение16 мин
Количество просмотров47K
В предыдущей части мы показали, что в клеточном автомате могут возникать волны, имеющие специфический внутренний узор. Такие волны могут запускаться из любого места клеточного автомата и распространяться по всему пространству клеток автомата, перенося информацию. Соблазнительно предположить, что реальный мозг может использовать схожие принципы. Чтобы понять возможность аналогии, немного разберемся с тем, как работают нейроны реального мозга.
Читать дальше →

Как «моделируют будущее» в Университете ИТМО: от предсказания поведения толпы до анализа мнений в соцсетях

Время на прочтение6 мин
Количество просмотров10K
Можно ли предсказать поведение толпы? Ученые из Института наукоемких компьютерных технологий (НИИ НКТ) при Университете ИТМО взялись решить эту задачу. Они создали систему, моделирующую варианты развития событий в местах массового скопления людей, будь то стадион во время футбольного Чемпионата Мира или святые места в период массового паломничества.

От хаоса — к модели


Модель строится на основе особенностей толпы, таких, как социальная структура, и внешних факторов, — например, погодных условий или политической обстановки. Также задаются параметры территории, где происходит действо. В результате, ученые видят наглядную картину поведения людей в заданных условиях. Выглядит это примерно так:


Читать дальше →

Алгоритм Левенберга — Марквардта для нелинейного метода наименьших квадратов и его реализация на Python

Время на прочтение9 мин
Количество просмотров69K



Нахождение экстремума(минимума или максимума) целевой функции является важной задачей в математике и её приложениях(в частности, в машинном обучении есть задача curve-fitting). Наверняка каждый слышал о методе наискорейшего спуска (МНС) и методе Ньютона (МН). К сожалению, эти методы имеют ряд существенных недостатков, в частности — метод наискорейшего спуска может очень долго сходиться в конце оптимизации, а метод Ньютона требует вычисления вторых производных, для чего требуется очень много вычислений.



Для устранения недостатков, как это часто бывает, нужно глубже погрузиться в предметную область и добавить ограничения на входные данные. В частности: МНС и МН имеют дело с произвольными функциями. В статистике и машинном обучении часто приходится иметь дело с методом наименьших квадратов (МНК). Этот метод минимизирует сумму квадрата ошибок, т.е. целевая функция представляется в виде



\frac{1}{2}\sum \limits_{i=1}^{N}(y_i'-y_i)^2 = \frac{1}{2}\sum \limits_{i=1}^{N}r_i^2 \tag{1}


Алгоритм Левенберга — Марквардта является нелинейным методом наименьших квадратов. Статья содержит:


  • объяснение алгоритма
  • объяснение методов: наискорейшего спуска, Ньтона, Гаусса-Ньютона
  • приведена реализация на Python с исходниками на github
  • сравнение методов

Читать дальше →

Математика для искусственных нейронных сетей для новичков, часть 3 — градиентный спуск продолжение

Время на прочтение6 мин
Количество просмотров59K
Часть 2 — градиентный спуск начало

В предыдущей части я начал разбор алгоритма оптимизации под названием градиентный спуск. Предыдущая статья оборвалась на писании варианта алгоритма под названием пакетный градиентный спуск.

Существует и другая версия алгоритма — стохастический градиентный спуск. Стохастический = случайный.
Читать дальше →

Ближайшие события

R и Spark

Время на прочтение8 мин
Количество просмотров10K
imageSpark – проект Apache, предназначенный для кластерных вычислений, представляет собой быструю и универсальную среду для обработки данных, в том числе и для машинного обучения. Spark также имеет API и для R(пакет SparkR), который входит в сам дистрибутив Spark. Но, помимо работы с данным API, имеется еще два альтернативных способа работы со Spark в R. Итого, мы имеем три различных способа взаимодействия с кластером Spark. В данном посте приводиться обзор основных возможностей каждого из способов, а также, используя один из вариантов, построим простейшую модель машинного обучения на небольшом объеме текстовых файлов (3,5 ГБ, 14 млн. строк) на кластере Spark развернутого в Azure HDInsight.
Читать дальше →

Использование триграмм для коррекции результатов распознавания

Время на прочтение10 мин
Количество просмотров14K


На рисунке изображены схема из 8 возможных триграмм, взятая из книги [1]



Естественные языки могут быть охарактеризованы распределением частот встречаемости своих элементов, таких как слова, отдельные буквы или последовательности букв (N-граммы). Формально N-граммой называется строка из N символов, принадлежащих некоторому алфавиту, состоящему из конечного числа символов. О теоретических и прикладных вопросах применения аппарата N-грамм для автоматической коррекции текста можно прочесть в работе [2].



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


Читать дальше →

«Мои друзья потеряли меня из виду на 3 месяца» или как люди учатся у нас big data

Время на прочтение5 мин
Количество просмотров18K
Всем привет! 5 октября в New Professions Lab стартует пятый набор программы «Специалист по большим данным», которую на данный момент закончило более 200 человек. Мы уже рассказывали на Хабре (здесь и здесь), чему конкретно мы учим, с какими знаниями и навыками выходят наши выпускники, и совсем скоро напишем, что нового будет в пятой программе. А сегодня хотим поделиться рассказами и отзывами тех, кто уже прошел обучение и на себе испытал все тяготы и невзгоды.

image
Читать дальше →

Логика сознания. Часть 1. Волны в клеточном автомате

Время на прочтение7 мин
Количество просмотров68K
Начнем разговор о мозге с несколько отвлеченной темы. Поговорим о клеточных автоматах. Клеточный автомат – это дискретная модель, которая описывает регулярную решетку ячеек, возможные состояния ячеек и правила изменений этих состояний. Каждая из ячеек может принимать конечное множество состояний, например, 0 и 1. Для каждой из ячеек определяется окрестность, задающая ее соседей. Состояние соседей и собственное состояние ячейки определяют ее следующее состояние.
Наиболее известный клеточный автомат – это игра «Жизнь». Поле в игре «Жизнь» состоит из ячеек. Каждая ячейка имеет восемь соседей. Задается начальная комбинация. Затем начинается смена поколений. Если у занятой ячейки два или три занятых (живых) соседа, то ячейка продолжает жить. Если соседей меньше 2 или больше 3, то ячейка умирает. Когда у пустой ячейки оказывается ровно 3 соседа в ней зарождается жизнь. Задав произвольную начальную комбинацию можно пронаблюдать ее эволюцию.
Читать дальше →

[Опрос] А вот про нейронные сети, ИИ и т.д

Время на прочтение5 мин
Количество просмотров23K

На просторах интернета часто доводилось видеть мнения, что де "нейросеть — панацея от всего и вся", т.е. например "натравите нейросеть — и все, профит" или еще брутальней "скоро создадут ИИ на базе нейронной сети, которая сможет заменить даже программистов / администраторов / аналитиков и т.д.".


Как правило когда пытаешься затем выяснить глубину познания дзэн оппонента в этой области, выясняется что он чуть не полный дилетант (ну или после пары бестолковых "аргументов" с пеной у рта, он сливается, прерывая тем самым попытку выяснить его уровень).


Я не понаслышке знаком с нейронными сетями, участвовал в некоторых проектах, "конструировал", обучил и настроил уже более десятка различных flow с использованием последних в разных областях применения (при этом перепробовав множество различных движков и типов сетей от простейших перцептронов до самоорганизующихся монстров). Кроме того, я лично знаком с некоторым количеством людей, активно проектирующих и использующих нейросети в повседневности, и пока что ни от одного из них не слышал про сногсшибательный прорыв в использовании нейросетей (что касается интеллекта последних). Т.е. я думаю, что в состоянии озвучить удаленность от реалий вышеприведенных высказываний.


Написать статью (и опрос) хотел уже довольно давно, но все как-то руки не доходили. А после очередного вопроса-предложения по е-майлу "натравите же нейронную сеть" на проблему из моей прошлой статьи "Мониторинг лог-журналов: Такой уязвимый лог...", все-таки понял — нет — надо писать.


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


Хотя вдруг это я таки нещадно отстал от жизни...

Читать дальше →

Логика сознания. Вступление

Время на прочтение8 мин
Количество просмотров113K
image В свое время на Хабре был опубликован цикл статей «Логика мышления». С тех пор прошло два года. За это время удалось сильно продвинуться вперед в понимании того, как работает мозг и получить интересные результаты моделирования. В новом цикле «Логика сознания» я опишу текущее состоянии наших исследований, ну а попутно попытаюсь рассказать о теориях и моделях интересных для тех, кто хочет разобраться в биологии естественного мозга и понять принципы построения искусственного интеллекта.

Перед началом хотелось бы сделать несколько замечаний, которые будет полезно помнить во время чтения всех последующих статей.

Ситуация, связанная с изучением мозга, особенная для науки. Во всех остальных областях естествознания есть базовые теории. Они составляют фундамент на котором строятся все последующие рассуждения. И только в нейронауке до сих пор нет ни одной теории, которая хоть как-то объясняла, как в нейронных структурах мозга протекают информационные процессы. При этом накоплен огромный объем знаний о физиологии мозга. Получены очень обнадеживающие результаты с помощью искусственных нейронных сетей. Но перекинуть мостик от одного к другому, пока, не удается. То, что известно о биологических нейронных сетях очень плохо соотносится с созданными на сегодня архитектурами искусственных нейронных сетей.

Не должна вводить в заблуждение распространенная фраза о том, что многие идеи искусственных нейронных сетей позаимствованы из исследований реального мозга. Заимствование носит слишком общий характер. По большому счету, оно заканчивается на том, что и там и там есть нейроны и между этими нейронами есть связи.
Читать дальше →

Как подружить Tensorflow и C++

Время на прочтение6 мин
Количество просмотров47K

Google TensorFlow — набирающая популярность библиотека машинного обучения с акцентом на нейросетях. У нее есть одна замечательная особенность, она умеет работать не только в программах на Python, а также и в программах на C++. Однако, как оказалось, в случае С++ нужно немного повозиться, чтобы правильно приготовить это блюдо. Конечно, основная часть разработчиков и исследователей, которые используют TensorFlow работают в Python. Однако, иногда бывает необходимо отказаться от этой схемы. Например вы натренировали вашу модель и хотите ее использовать в мобильном приложении или роботе. А может вы хотите интегрировать TensorFlow в существующий проект на С++. Если вам интересно как это сделать, добро пожаловать под кат.
Читать дальше →

Вклад авторов