Искусственный интеллект – это специфическая технология, которая занимается разработкой программ. Но что это значит? Это значит, что всю информацию загружают в систему, а алгоритм развивает программу. Мы знаем, что человеческое мышление образуется с помощью мозга, а И.И. на нейронных сетей. И.И не надо программировать он сам может оптимизировать программу. Искусственный интеллект сам приобретает новые данные и может работать без участия человека.
Тема искусственного интеллекта появилась 50 лет назад. Математический аппарат был готов уже 40 лет назад. Тот Математический аппарат, который мы используем для создание современного искусственного интеллекта – это конец 80 годов начала 90 годов. Тема нейронных сетей началась в 80-е годы, с тех пор мы не изобрели ничего нового. Математический аппарат был готов давно и человечество все эти годы, просто училась то, что называется хардами железо. То, что мы требуется обучать. Например, само управляемые автомобили ведь можно себе представить, что на дороге появится новый дорожный знак или изменится форма старого или появится новое транспортное средство скажем восьми колесное средство.
Компьютерный зрение – это попытка создать систему, которая сможет извлекать информацию из изображений так же или лучше, чем это делает человек, поэтому для компьютерного зрения сформулирован так что компьютер должен отвечать на любой вопрос про изображение на который может ответить человек. Таким образом это область попадает в большую область искусственного интеллекта. Решить эту задачу достаточно трудно потому что человек решает ее самого детства. С точки зрения компьютера изображение — это лишь матрица из чисел, из которых нужно как-то научиться извлекать инофирмою об объектах. Первый самый главный вопрос это, что и где находятся на изображение и самым важным объектом для людей всех других людей является другие люди поэтому клочимые задачи — это поиск, например, лиц фигур других людей и другой значимой информации такой как например текст на изображении. Помимо о конкретные объекты можно задавать вопросы о содержания изображения в целом, то есть некоторые давать его общую характеристику, например, откуда это изображение было получено. Компьютерное зрение — это сложная задача. Почему она сложная? Потому что характеристики объектов сильно меняются, например, из-за обзора из-за точки зрения. Если мы попробуем решить задачу такую как сколько глаз у человека, то ответом будет разные зависимости от того какую картинками увидим. Их может быть два или один, или ни одного. Их расположение могут быть разные, пропорции могут сильно меняться. Все эти изображениях может очень сильно меняться и не соответствовать действительности. Вторая проблема- это изменение цвета. Объекты, имеющие одно и тоже назначения, могут иметь совершенно разные характеристики. Возьмем, например, стул или кресло, то есть объект на котором можно сидеть этот объект может быть сделан из разного материала, он может быть твердым или мягким, он может иметь и не иметь спинку, может быть разных цветов, разной формы материал. Тем не менее- это все объекты попадающий в одну и туже самую категорию. Помимо этого, в большинстве случаев мы можем для одного и того же изображения построить разные описание.
Нейронные сети было естественным подходом к решению задач искусственного интеллекта потому что мы предполагаем, что именно с помощью нейросетей человеческий мозг решает разные задачи. Если рассмотреть под микроскопом структуру мозга, то мы увидим, что в ней содержится большое количество очень своеобразных клеток, которые собственно получили название нейроны и они связываются с друг другом в огромную сеть. Нейрон выглядит следившим образом у него есть основное тело с большим количеством отростков часть отростков короткие называются дендриты и есть один длинный отросток под названием «АКСОН». «АКСОН»- это своеобразный провод у него даже есть изоляция. Нейрон получает через дендриты сигнал от своих коллег принимает какое-то решение возбудится если он передает электрический сигнал по «АКСОНУ» и дальше этот сигнал передаётся другим клеткам. Поэтому первым что сделали в области искусственного интеллекта – это построители математическую модель нейрона. Разумеется, первые математические модели весьма далеки от того как работает нейрон. Он работает существенно сложнее, однако даже такие модели подходят для решения задач машинного обучения. Математическая модель нейрона – это некоторый элемент, который получает несколько входных сигналов домножает эти сигналы на весомые коэффициенты суммируют их и сравнивают с некоторым порогом. Сравнение с порогом еще называется функция активации если суммарный учет весов превышает порог — значит нейрон активируется и передает сигнал, например, единичку. Если суммарное значение меньше порога значит он не активируется, и мы это можем моделировать сигналом ноль. Таким образом нейрон является линейным классификатором поскольку он берет линейную комбинацию входных признаков то мы можем представить нейрон как линейную разделяющую гиперплоскость большом пространстве признаков. То есть один нейрон может решить линейную задачу классификацию в котором есть объекты двух типов, и они в нашем пространстве признаки распределены таким образом, что 1 гиперплоскостью они разделяются процесс обучения нейрона — это процесс выбора весов для каждых признаков. Были предложены много разных способов обучения для нейрона вначале был предложен метод стохастического градиентного спуска, то есть мы по одному выбирали элементы, проверяли правильно нейронных классифицируют или нет. Если классифицировать неправильно, то мы меняли веса нейрона таким образом, чтобы уменьшить ошибку. В 90-е годы для обучения одного нейрона был предложен новый алгоритм, получивший названия «Метод опорных векторов», который позволял решать задачу эффективнее за фиксированное время он лучше работал для случая линейного неразделимых данных, то есть находил гиперплоскость, которой разумеется не может решить задачу полностью, но решает ее достаточно неплохо. Плюс ему нужно небольшое число примера в обучающей выборке для того чтобы работать хорошо.
В середине 70-х годов не заметить независимо в Советском Союзе или в Америке был предложен метод обучения многословных нейронных сетей, который потом получил название «Обратное расположение ошибки». В Советском Союзе работа вышла на русском языке поэтому никто в мире о ней не узнал. В западном мире этот метод был опубликован в статье «Новые инструменты для предсказания анализа в поведенческих науках» и поэтому в области искусственного интеллекта тоже никто не заинтересовался. Метод обратного распространения ошибки был пере открыт в середине 80- годов при участии Хинтона. И тогда казалось, что это действительно крутая штука и с его помощью можно решать задачи и интерес к нейронным сетям снова повысился. Как в двух словах устроен этот метод обратного распространения ошибки. Авторы попробовали воспользоваться знаниями математического анализа для того чтобы реализовать метод стохастического градиентного спуска уже не для одного нейрона, а для нейросети. Оказалось, что мы можем вычислить градиент, в направлении которого нужно изменить каждый параметр для каждого нейрона в нашей сети если запустить сеть задом наперед. То есть сначала мы ее прогоняем новый обучающий пример через сети и получаем какие-то выходы измеряем ошибку затем зная эту ошибку и активировался этот нейрон или нет. Мы можем определить градиент для данного нейрона и распространив в эту информацию об этой ошибки дальше в глубь сети мы можем последовательно посчитать градиенты для всех нейронах. Процедура это довольно достаточно быстрая она занимает всего лишь два раза больше времени чем процедура просто вычисление результатов одной нейросети. С помощью обратно распространения ошибки было придумано множество хороших алгоритмов распознавание изображений, например, придуман первый практически применимый метол выделения лица на изображениях с низким уровнем ошибки, которые можно было бы применять для выделения лиц видео если бы он не был таким медленным. Этот метод был устроен в виде небольшой нейронной сети, которая была не многослойной, но в ней каждый нейрон был связан с определенной областью изображения. Были нейроны, которые получали информацию от четвертей изображения от 16 частей и от полосок по изображению. Далее эта информация объединялась и принимались решение лицо или не лицо. В 80-е годы основным подходом к моделированию к решению задач машинного обучения с помощью вестей было связанных сетей, в которых каждый нейрон каждого слоя связан со всеми нейронами предыдущего слоя. Таким образом для каждого слоя число ресурсов или свободного параметров меряется, как n^2 и в общем число свободных параметров в этой нейросети было очень большим. Нам нужно было много обучающих данных для того чтобы такую сети настроить.