Искусственный интеллект (Artificial Intelligence, AI) – это область науки, созданная на стыке многих академических наук. Терми бы введён в 1956 году, в эпоху попыток эмитировать работу человеческого мозга. Один из способов его достижения – машинное обучение (Machine Learning). Дисциплина машинное обучение (ML) строится на трёх составляющих: данных (разнородные данные), алгоритмах и признаках. Другие, смежные дисциплины, строятся на двух сущностях. Так, классическое программирование строится на алгоритмах, применяемых к конкретным признакам, Data Scienes – на данных и получаемых из них фичах, Data Mining – на обработке алгоритмах и данных. ML с помощью алгоритмов и фич предоставляет новые данных. Так, как ML использует фичи, которые подаются как основа для обучения, то он использует результаты Data Scienes. Для разработки самих сетей используются языки программирования.
Когда мы подаём нейронные сети данных, на их основе происходит обучение нахождению решений и выявление закономерностей и данных, ранее которых не было. Для обучения могут использоваться статистические алгоритмы, например, на языке R, поиск в глубину на языке Prolog или поиск в ширину на Refal, а также подстраивающиеся структуры – нейронные сети. Нейронные сети, в зависимости от задач, строятся по разным принципам, имеют структуру и по–разному обучаются. В последнее время наибольший прорыв получили нейронные сети представления данных (Representation learning), занимающиеся выявлением в информации закономерностей, так как саму информацию из–за её размеров они не могут запомнить. Большой эффект дают глубокие нейронные сети, имеющие множество уровней признаков, признаки на последующих уровнях строятся на основании признаков с предыдущих уровней, о них и пойдёт речь в этой главе.
Под Machine Learning (ML) понимается адаптация преобразования входных данных в выходные данные в зависимости от истории решений. Такой класс задач решается или алгоритмическим способом, или с помощью нейронных сетей. О том, где какое решение и в какой ситуации лучше применять далее и пойдёт речь. Для практического примера мы возьмём классификацию изображений с помощью обучения глубокой нейронной сети с учителем. Посмотрим её местоположение в классификации.
Типы построения:
* Классическое обучение (экспертное);
* Нейронные сети.
Типы обучений:
* С учителем (регрессия, классификация, порождающие, seq2seq);
* Без учителя (кластеризация, поиск правил, обобщение, ассоциация).
По способу улучшения результата:
* Ансамбли нейронных сетей;
* Глубокие нейронные сети.
В эволюции нейронных сетей, обычно, выделяют три эпохи:
* Экспертные системы (rule based модели) – системы, основанные на правилах. Недостатком является слабая актуализируемость, если эксперт закончил работать, то система начинает устаревать;
* Машинное обучение – с помощью статистических методов по указанным признакам (фичам) система находит правила. Сами фичи должен определить эксперт предметной области из всех имеющихся параметров данных, то есть выделить из сотни или тысячи параметров данных важные, например, столбцы в таблице базы данных. Это сложная задача, так как факторов для разных групп может быть переменное число и определить все группы и для них все факторы – крайне трудоёмкий процесс. При этом излишек факторов вносит шум в результат предсказания. Современные нейронные сети превосходят для большинства случаев статистические по вероятности;
* Нейронные сети позволяют самим выбрать признаки, но для этого требуется гораздо больше данных, обычно больше миллиона экземпляров. Эти данные требуются, чтобы пройти через все её слои и на последующих слоях усилить важность нужных признаков и уменьшить не важных.
Этапы эволюции нейронных сетей:
* 1950-е годы – исследование мозга и его имитирование;
* 1960-е годы – собеседник ELIZA (1956 год) на общие вопросы, генетические алгоритмы основанные на переборе всех возможных изменений и выбора лучшего;
* 1970-е годы – экспертные системы основанные на правилах и данных от экспертов, например MYCIN и DENDRAL;
* 1980-е годы – коммерческое внедрение экспертных систем;
* 2010-е годы – решение подготовленных задач нейронными сетями и статистическими алгоритмами;
* 2010-е годы – глубокое обучение в соревнованиях с человеком и реальном мире (автопилотах, переводчиках, ассистентах).
Последние годы:
* 1994 год – выигрыш Chinook в шашки у чемпиона мира,
* 1997 год – выигрыш Deep Blue в настольную игру шахматы у чемпиона мира,
* 2005 год – беспилотные автомобили на площадках (соревнование DARPA Grand Challenge),
* 2011 год – IBM Watson выиграла в телевизионной игре Jeopardy,
* 2012 год – Google X Lab распознаёт цветные изображения животных,
* 2016 год – Google Translate основан на нейронных сетях, выигрыш Google DeepMind AlphaGo у чемпиона мира по Go,
* 2017 год – выигрыш у чемпионов в коллективную 3D игру Dota2,
* 2018 год – беспилотные такси Alphabet Waymo на общих дорогах в Аризоне,
* 2019 год – победа Libratus чемпионов в покер,