Книга «Машинное обучение и TensorFlow» |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-01-30 11:45 алгоритмы машинного обучения, новости нейронных сетей, разработка по Знакомство с машинным обучением и библиотекой TensorFlow похоже на первые уроки в автошколе, когда вы мучаетесь с параллельной парковкой, пытаетесь переключить передачу в нужный момент и не перепутать зеркала, лихорадочно вспоминая последовательность действий, в то время как ваша нога нервно подрагивает на педали газа. Это сложное, но необходимое упражнение. Так и в машинном обучении: прежде чем использовать современные системы распознавания лиц или алгоритмы прогнозирования на фондовом рынке, вам придется разобраться с соответствующим инструментарием и набором инструкций, чтобы затем без проблем создавать собственные системы. Новички в машинном обучении оценят прикладную направленность этой книги, ведь ее цель — познакомить с основами, чтобы затем быстро приступить к решению реальных задач. От обзора концепций машинного обучения и принципов работы с TensorFlow, вы перейдете к базовым алгоритмам, изучите нейронные сети и сможете самостоятельно решать задачи классификации, кластеризации, регрессии и прогнозирования.
Отрывок. Сверточные нейронные сети Покупки в магазинах после изнурительного дня — весьма обременительное занятие. Мои глаза атакует слишком большой объем информации. Распродажи, купоны, разнообразные цвета, маленькие дети, мерцающие огни и заполненные людьми проходы — вот только несколько примеров всех сигналов, которые направлены в зрительную кору головного мозга, независимо от того, хочу я или не хочу обращать на это внимание. Визуальная система поглощает изобилие информации. 9.1. Недостатки нейронных сетей Машинное обучение представляет собой вечную борьбу за разработку модели, которая обладала бы достаточной выразительностью для представления данных, но при этом не была такой универсальной, чтобы доходить до переобученности и запоминать паттерны. Нейронные сети предлагаются как способ повышения выразительности; хотя, как можно догадаться, они сильно страдают от ловушек переобучения. ПРИМЕЧАНИЕ Переобучение возникает, когда обученная модель исключительно точна на обучающем наборе данных и плоха на проверочном наборе данных. Эта модель, вероятно, чрезмерно универсальна для небольшого объема доступных данных, и в конце концов она просто запоминает обучающие данные. Для сравнения универсальности двух моделей машинного обучения вы можете использовать быстрый и грубый эвристический алгоритм, чтобы подсчитать число параметров, которые требуется определить в результате обучения. Как показано на рис. 9.1, полносвязная нейронная сеть, которая берет изображение размером 256 ? 256 и отображает его на слой из 10 нейронов, будет иметь 256 ? 256 ? 10 = 655 360 параметров! Сравните ее с моделью, содержащей только пять параметров. Можно предположить, что полносвязная нейронная сеть может представлять более сложные данные, чем модель с пятью параметрами. В следующем разделе рассматриваются сверточные нейронные сети, которые являются разумным способом снижения числа параметров. Вместо того чтобы заниматься полносвязными сетями, CNN многократно использует повторно те же параметры. 9.2. Сверточные нейронные сети Главная идея, лежащая в основе сверточных нейронных сетей, состоит в том, что вполне достаточно локального осмысления изображения. Практическое преимущество сверточных нейронных сетей таково, что, имея несколько параметров, можно значительно сократить время на обучение, а также объем данных, необходимых для обучения модели. ОПРЕДЕЛЕНИЕ Сверткой (convolution) называют взвешенное суммирование значений интенсивности пикселов изображения по мере прохождения окна по всему изображению. Оказывается, что этот процесс свертки изображения с матрицей весов создает другое изображение (такого же размера, который зависит от свертывания). Свертыванием называют процесс применения свертки. Все манипуляции скользящего окна происходят в сверточном слое нейронной сети. Типичная сверточная нейронная сеть имеет несколько сверточных слоев. Каждый сверточный слой обычно создает много дополнительных сверток, поэтому матрица весовых коэффициентов является тензором 5 ? 5 ? n, где n — число сверток. В качестве примера пусть изображение проходит через сверточный слой с матрицей весовых коэффициентов размером 5 ? 5 ? 64. Это создает 64 свертки скользящим окном 5 ? 5. Поэтому соответствующая модель имеет 5 ? 5 ? 64 = 1600 параметров, что значительно меньше числа параметров полносвязной сети: 256 ? 256 = 65 536. Привлекательность сверточных нейронных сетей (CNN) состоит в том, что число используемых моделью параметров не зависит от размера исходного изображения. Можно выполнить одну и ту же сверточную нейронную сеть на изображения размером 300 ? 300, и число параметров в сверточном слое не изменится! 9.3. Подготовка изображения Перед началом использования модели CNN с TensorFlow подготовим несколько изображений. Листинги в этом разделе помогут вам установить обучающий набор данных для оставшейся части главы.
Нейронные сети предрасположены к переобучению, поэтому важно сделать все возможное для минимизации этой ошибки. Для этого необходимо не забывать выполнять очистку данных перед их обработкой. Очистка данных является основным процессом конвейера машинного обучения. Приведенный в листинге 9.2 код для чистки набора изображений использует следующие три шага: 1. Если у вас изображение в цвете, попробуйте преобразовать его в оттенки серого, чтобы уменьшить размерность входных данных и, следовательно, уменьшить количество параметров. 2. Подумайте об обрезке изображения по центру, потому что края изображения не предоставляют никакой полезной информации. 3. Нормализуйте входные данные вычитанием средней величины и делением на среднеквадратическое отклонение каждой выборки данных, чтобы градиенты во время обратного распространения не изменялись слишком резко. В следующем листинге показано, как очистить набор данных с помощью этих методов. Сохраните все изображения из набора данных CIFAR-10 и запустите функцию очистки. В следующем листинге задается удобный метод считывания, очистки и структурирования данных для использования в TensorFlow. Туда же следует включить код из файла cifar_tools.py. Листинг 9.3. Предварительная обработка всех файлов CIFAR-10
В файле using_cifar.py можно использовать метод, импортировав для этого cifar_tools. В листингах 9.4 и 9.5 показано, как делать выборку нескольких изображений из набора данных и визуализировать их. Листинг 9.4. Использование вспомогательной функции cifar_tools
Вы можете произвольно выбрать несколько изображений и отрисовать их в соответствии с меткой. Следующий листинг делает именно это, поэтому вы можете лучше понять тип данных, с которыми будете иметь дело. Запустив этот код, вы создадите файл cifar_examples.png, который будет похож на рис. 9.3. » Более подробно с книгой можно ознакомиться на сайте издательства » Оглавление » Отрывок Для Хаброжителей скидка 20% по купону — Машинное обучение Источник: habr.com Комментарии: |
|