Машинное обучение — чрезвычайно быстрорастущая область в 2019 году. У всех нас есть романтические представления о том, что такое AI/ML (искусственный интеллект и машинное обучение), но не многие люди знают, что это такое на самом деле и почему это действительно важно. Машинное обучение — вовсе не новая область, несмотря на относительно недавний всплеск популярности. Впервые она стала серьезной областью изучения информатики в 1940-х и 50-х годах, но не всегда была самой уважаемой. Многие первопроходцы, которых сейчас считают пионерами, когда-то подвергались насмешкам со стороны своих сверстников. Исследователь искусственного интеллекта из Университета Торонто Джеффри Хинтон, также известный как Крестный отец глубокого обучения, был одним из первых последователей, и теперь считается одним из самых уважаемых профессионалов в сообществе машинного обучения.
Осознаем мы это или нет, машинное обучение успешно внедряется в нашу повседневную жизнь. Google использует машинное обучение, чтобы предоставить нам релевантные результаты поиска, Facebook использует его, чтобы автоматически отмечать друзей на фотографиях, а Apple использует машинное обучение для таких вещей, как распознавание наших лиц, чтобы разблокировать наши телефоны, а также распознавание текста для быстрого перевода или сканирования документов.
Компьютеры — невероятный инструмент для развития человеческих знаний, но мы всегда будем ограничены нашими биологическими ограничениями. Имея это в виду, неудивительно, что ученые-компьютерщики стремятся воспроизвести то, как наш мозг обрабатывает информацию без этих ограничений. Единственный реальный предел потенциала машинного обучения — работа в рамках современных технологий.
По своей сути машины очень просты — они выполняют ту задачу, на которую их запрограммировали, и только это. Первые компьютеры занимали целые комнаты и имели гораздо меньшую вычислительную мощность, чем телефоны, которые мы каждый день носим в карманах. В результате того, что наш мозг, по сути, представляет собой очень сложные эволюционно созданные машины, состоящие из атомов и нейротрансмиттеров, вполне логично, что мы хотели бы воспроизвести это. Человеческое познание до сих пор в значительной степени остается загадкой, но мы достаточно понимаем фундаментальные строительные блоки нашего мозга, чтобы довольно хорошо справляться с его воспроизведением. Имея это в виду, одной из ключевых идей машинного обучения является воспроизведение сети нейронов внутри нашего мозга. Это называется нейронной сетью.

В конце 1960-х годов важной вехой в машинном обучении стало изобретение «персептрона». Персептрон был примитивной версией современной глубокой нейронной сети, основная идея которой заключалась в том, чтобы разрешить ввод нескольких взвешенных наборов данных, а затем отфильтровать их с помощью алгоритма, чтобы на выходе получить то, что мы хотим. В этих нейронных сетях может быть несколько слоев, но все они следуют одному и тому же принципу. Общий взгляд на нейробиологию показывает нам, что нервные импульсы в мозге (входы) проходят от дендрита к дендриту, чтобы пройти через наш мозг. Затем эти нейроны обрабатываются определенными клетками головного мозга, а затем отправляются в височную долю для интерпретации отфильтрованной информации. Каждая итерация данных, фильтруемых нашими нейронами, сама по себе незначительна, но если повторить ее миллиарды и миллиарды раз, мы сможем быстро увидеть, насколько сложны результаты. С точки зрения информатики, вы можете визуализировать эти нейронные импульсы как необработанные данные, а узлы нейронной сети — как тело клетки нейрона.
Существует игра под названием while True: Learn(), которая служит веселым и доступным введением в основы машинного обучения. Ниже приведен скриншот одной из более ранних головоломок с использованием персептрона:

В игре цель игроков - решать все более сложные головоломки сортировки. По мере продвижения вы получаете доступ к более сложным инструментам, но по мере того, как инструменты становятся лучше, проблемы усложняются. Легко понять, насколько сильно машинное обучение влияет на нашу жизнь. Почти все задачи связаны с сортировкой форм и цветов, но цель всегда разная. Один из сценариев заключается в том, что «алгоритм» игроков будет использоваться для швейной фабрики. Формы и цвета представляют различные части сырья, которые владельцы фабрик хотят автоматизировать. Машинное обучение оказало огромное влияние на массовое производство и очень высоко ценится на свободном рынке благодаря способности экспоненциально повышать эффективность. Конечная цель while True: Learn() заключается в том, что главный герой хочет в конечном итоге понять свою кошку. Он обнаруживает, что его кот на самом деле гораздо лучший программист, чем он сам, но, к сожалению, не может с ним общаться. Большая тема этого включает в себя сначала программирование компьютера, чтобы он мог распознавать кошку по фотографиям разных животных, а затем предсказывать, о чем кошка в настоящее время думает, на основе огромного количества данных, которые мы собираем о том, как он тратит свое время. время и выбирает поведение.

В настоящее время основной инструмент, используемый для таких задач, как распознавание изображений и даже обучение компьютеров играть в такие игры, как Super Mario Bros и Flappy Bird, называется TensorFlow. TensorFlow — это платформа машинного обучения с открытым исходным кодом, наиболее широко поддерживаемая для Python. Джеффри Хинтон был одним из ключевых членов, которые помогли создать первоначальную команду TensorFlow, и она быстро стала одной из самых эффективных сред в машинном обучении. С недавним добавлением TensorFlow JS теперь он поддерживает JavaScript и поддерживает ряд аппаратных средств от специализированных суперкомпьютеров ML до устройств Android и самодельных Raspberry Pi.

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

Генеративно-состязательные сети (GAN) представляют собой архитектуру глубоких нейронных сетей, состоящую из двух сетей, противопоставляющих друг другу (таким образом, «состязательных»). Потенциал GAN огромен, потому что они могут научиться имитировать любое распределение данных. То есть GAN можно научить создавать миры, до жути похожие на наши, в любой области: изображения, музыка, речь, проза. — Skymind.ai
В машинном обучении используются два основных типа алгоритмов; генеративный и дискриминационный алгоритмы. Дискриминативные алгоритмы помогают классифицировать объекты. Это то, что будет использоваться для обучения машины распознавать разницу между кошкой и собакой. По мере того, как машины проходят все больше и больше итераций (эпох), они начинают все более различать функции, которые ищут. Кошки и собаки — очень похожие животные, поэтому нужны очень конкретные критерии, чтобы определить разницу между ними, не зная изначально, что такое животные. После того, как первоначальная классификация сделана, генеративные алгоритмы используются для анализа вероятности того, что что-то произойдет. Повседневный пример этого можно увидеть в Google. Для первоначального предположения о том, что мы ищем, будет использоваться дискриминативный алгоритм, затем генеративный алгоритм будет использоваться для адаптации конкретных результатов, которые каждый из нас получит на основе вероятности того, что это то, что нам нравится, на основе нашего прошлого. Мероприятия.
Дискриминативные модели изучают границу между классами
Генеративные модели моделируют распределение отдельных классов

Тем временем генератор создает новые синтетические изображения, которые он передает дискриминатору. Это делается в надежде, что они тоже будут считаться подлинными, даже если они поддельные. Цель генератора — генерировать сносные рукописные цифры: лгать, не будучи пойманным. Цель дискриминатора — идентифицировать изображения, поступающие от генератора, как фальшивые.
Вот шаги, которые предпринимает GAN:
Генератор принимает случайные числа и возвращает изображение.
Это сгенерированное изображение подается в дискриминатор вместе с потоком изображений, взятых из фактического, достоверного набора данных.
Дискриминатор принимает как настоящие, так и поддельные изображения и возвращает вероятности, число от 0 до 1, где 1 представляет собой прогноз подлинности, а 0 представляет подделку.
Таким образом, у вас есть двойная петля обратной связи:
Дискриминатор находится в петле обратной связи с исходными изображениями, которые мы знаем.
Генератор находится в цепи обратной связи с дискриминатором.
Короче говоря, GAN можно использовать практически для всего, что связано с общим искусственным интеллектом. Они могут не только воспроизводить и анализировать самих себя, но и использовать то, что они создают, чтобы совершенствоваться в бесконечном цикле обратной связи. Недавней тенденцией в Интернете стала музыка, созданная с помощью GAN. Получив достаточно начальных наборов обучающих данных, GAN учится создавать свои собственные уникальные произведения, очень похожие на настоящие музыкальные произведения.
Машинное обучение изменило то, как мы взаимодействуем с миром и воспринимаем его. Благодаря достижениям в этой области машинное обучение — это то, с чем каждый из нас сталкивается каждый день, и по мере того, как технологии продолжают развиваться, это будет становиться все более важным для того, как люди взаимодействуют со своим миром. Машинное обучение не ново, но недавние достижения стали экспоненциальными, поскольку аппаратное обеспечение с годами становилось все более и более мощным. Это гора тем, которые нужно пройти, но я надеюсь скоро узнать больше и, возможно, сделать из этого серию.