Нет сомнений в том, что искусственный интеллект уже в ближайшее время станет частью всех отраслей. Уже сейчас многие пытаются интегрировать ИИ даже в отрасли народного хозяйства. Однако что же такое ИИ и зачем он нужен смартфонам?
Искусственный интеллект (ИИ) – это технология создания интеллектуальных машин. ИИ включает в себя машинное обучение, а частью машинного обучения является глубокое обучение. Последнее включает в себя нейросети. Именно нейросети стали популярны в последнее время с ростом мощности графических карт.
Важную роль при создании нейросетей играет архитектура сети. Так, нейросети состоят из слоёв, каждый слой состоит из множества нейронов. Существуют один входной слой, несколько скрытых слоёв и один выходной. В самом простом случае нейроны на каждом слое соединяются со всеми нейронами следующего слоя. Соединения нейронов имеют свои веса.
Нейросети состоят из нейронов. Каждый нейрон включает в себя функцию активации и сумматорную функцию. Представим себе нейросеть следующим образом:
На изображении выше показаны веса соединений W, функция активации, расположенная внутри каждого нейрона, и сдвиг b, его мы опустим. Сумматорная функция суммирует все веса соединений на каждом нейроне и пропускает полученное значение через функцию активации.
Функция активации необходима для того, чтобы на основе входного значения принимать решение – активировать нейрон или нет. Активация нейрона приведет к переходу на новый слой. Как правило, в качестве функции активации используют сигмоидальную функцию.
В чем же основная особенность нейросети? Ее возможность обучаться. Например, Google Переводчик способен распознавать текст на фотографии. И, вероятно, это работает с помощью нейросетей. Но как?
Изначально все веса нейросети расставляются рандомно. И в этом случае на выходе Google Переводчик вместо слова «Велосипед» может выдать «Выпорлпыв». То есть, абсолютно несвязные буквы. А все дело в том, что наша сеть попросту не обучена.
Для обучения используют множество похожих данных, как правило, 80% исходных данных используют для обучения, а остальные 20% для тестирования. Например, в случае с Google Переводчиком на вход мы подаем каждый пиксель изображения. То есть, один нейрон равен одному пикселю. Таким образом, если мы имеем картинку размером 1000×1000, то наш входной слой будет состоять из 1 млн нейронов.
Входные значения, как правило, имеют диапазон от 0 до 1. В случае с Google Переводчиком мы первым делом фильтруем изображение, делая его черно-белым, далее, если пиксель черного цвета, на вход нейрона мы подаем «1», если белого, то «0». Затем каждый нейрон суммирует входные значения, умноженные на веса и пропускает через функцию активации.
Таким образом на выходе мы получим наше слово. Но сеть пока не обучена, так как мы не изменили веса соединений. Чтобы обучить нейросеть, используют метод обратного распространения ошибки. Покажем пример обучения нейросети с учителем. Суть ее заключается в том, что у нас имеются размеченные изображения с уже известными выходными значениями, и сеть на основе этих значений изменяет веса соединений таким образом, чтобы при любых входных данных сеть могла с большой долей вероятности определить нашу букву, а затем и слово.
В случае со смартфонами сейчас нейросети часто используют в камерах. Софт анализирует фотографии и фильтрует определенные области. Также ИИ используется в оптимизации софта, система более умно расходует память и ловко управляет процессами.
Возможно, мое объяснение было вам не очень понятно, но это нормально. Надеюсь, данная область вас заинтересовала, и вы наверняка найдете дополнительные источники для более глубокого изучения.
Мнением делитесь в Telegram-чате или ниже в комментариях.