В 2015 году Нил Якобштейн и Арун Росс описывают фреймворк TensorFlow, который сейчас является одним из самых популярных фреймворков машинного обучения, ориентированного на данные.
В 2017 году Фей-Фей Ли подчеркивает важность глубокого обучения в науках о данных и описывает некоторые исследования, которые были выполнены в этой области.
Искусственные нейронные сети и генетические алгоритмы
Искусственные нейронные сети (ИНС), обычно называемые просто алгоритмами глубокого обучения, представляют собой смену парадигмы в искусственном интеллекте. У них есть возможность изучать концепции и отношения без каких-либо заранее определенных параметров. ИНС также способны изучать неструктурированную информацию, выходящую за рамки требований установленных правил. Первоначальные модели ИНС были построены в 1960-х годах, но в последнее десятилетие их исследования активизировались.
Рост вычислительной мощности открыл новый мир вычислений благодаря разработке сверточных нейронных сетей (CNN) в начале 1970-х годов. В начале 1980-х Станислав Улам разработал функцию символического расстояния, которая стала основой для будущих алгоритмов сетевого обучения.
К концу 1970-х годов в ImageNet развернуто несколько CNN. В начале 2000-х годов графические процессоры, основанные на обработке данных с плавающей запятой, обеспечивали экспоненциальную производительность и низкое энергопотребление для обработки данных. Появление алгоритмов глубокого обучения является следствием применения более общих вычислительных архитектур и новых методов обучения нейронных сетей.
Благодаря последним достижениям в области многоядерных процессоров и графических процессоров обучение нейронных сетей с несколькими графическими процессорами (ГП) возможно за небольшую часть стоимости обычного обучения. Один из самых популярных примеров – глубокое обучение на графических процессорах. Обучение глубоких нейронных сетей на графических процессорах происходит быстро, масштабируемо, а также требует возможностей низкоуровневого программирования для реализации современных архитектур глубокого обучения.
Оптимизация генетических алгоритмов может быть эффективным методом поиска перспективных решений проблем информатики.
Методы генетического алгоритма обычно реализуются в среде моделирования, и многие общие проблемы оптимизации могут быть решены с помощью стандартного программного обеспечения библиотеки, такого как PowerMorph или Q-Learning.
Традиционные программные приложения на основе генетических алгоритмов требуют наличия обученного эксперта для программирования и настройки своего агента. Для обеспечения возможности автоматического создания сценариев программное обеспечение с генетическим алгоритмом может распространяться в виде исполняемого исходного кода, который затем может компилироваться обычными пользователями.
Генетические алгоритмы оптимизированы для известных решений, которые могут быть любого типа (например, целочисленный поиск, матричная факторизация, разбиение и т. д.). Напротив, оптимизация Монте-Карло требует, чтобы оптимальное решение могло быть сгенерировано неизвестным методом. Преимущество генетических алгоритмов перед другими методами оптимизации заключается в их автоматическом контроле над количеством необходимых поколений, начальными параметрами, функцией оценки и вознаграждением за точные прогнозы.
Важным свойством генетического алгоритма является его способность создавать надежную, «дикую» конфигурацию параметров (например, чередование горячих и холодных конечных точек), что соответствует заданной скорости обучения (скорость обучения, умноженная на количество поколений). Это свойство позволяет пользователю анализировать и решать, является ли конфигурация равновесия нестабильной.
Обратной стороной генетических алгоритмов является их зависимость от распределенного управления памятью. Хотя обширные методы оптимизации могут использоваться для обработки больших наборов входных данных и работы с несколькими конфигурациями процессоров / ядер, сложность этой операции может сделать решения на основе генетических алгоритмов уязвимыми для ограничений ресурсов, которые препятствуют прогрессу. Даже при наличии кода генетического алгоритма теоретически программы на основе генетических алгоритмов могут находить решения проблем только при запуске на соответствующей компьютерной архитектуре. Примеры проблем, связанных с генетическим алгоритмом, работающим на более ограниченной архитектуре, включают ограничения размера памяти для хранения представлений генетического алгоритма, ограничения памяти, налагаемые базовой операционной системой или набором инструкций, и ограничения памяти, налагаемые программистом, такие как ограничения на объем вычислительной мощности, выделяемой для генетического алгоритма и / или требований к памяти.
Читать дальше