Читаем Наука о данных. Базовый курс полностью

Для наглядности этого описания на рис. 14 показана нейронная сеть, которая принимает значение процентного содержания жира в организме человека и его МПК (максимальное потребление кислорода[17]) в качестве входных данных и вычисляет индивидуальный уровень физической подготовки[18]. Все нейроны в среднем слое сети вычисляют функцию на основе процентного содержания жира и МПК: f1(), f2() и f3(). Каждая из этих функций моделирует взаимодействие между входами иначе, чем две другие. Эти функции по существу представляют собой новые атрибуты, которые получены сетью из необработанных входных данных. Они схожи с атрибутом ИМТ, описанным ранее, который был рассчитан как функция веса и роста. Иногда оказывается возможным интерпретировать выходные данные нейрона внутри сети, насколько это позволяет предметная область, и понять, почему этот производный атрибут полезен для сети. Однако чаще производный атрибут, рассчитанный нейроном, не будет нести никакого смысла для человека. Просто эти атрибуты фиксируют взаимодействия между другими атрибутами, которые сеть сочла полезными. Последний узел в сети f4 вычисляет другую функцию — скомпонованную из f1(), f2() и f3(), — на выходе которой получается прогноз уровня физической подготовки, возвращаемый сетью. Опять же, эта функция не может быть значимой для человека, кроме того факта, что она определяет взаимодействие, которое, как обнаружила сеть, имеет высокую корреляцию с целевым атрибутом.

Обучение нейронной сети включает в себя поиск правильных весов для ее связей. Чтобы понять, как обучается сеть, полезно начать с размышлений о том, как отдельный нейрон обучается рассчитывать вес связи. Предположим, что у нас есть обучающий набор данных, который имеет для каждого объекта и входные значения, и целевой атрибут. Также предположим, что входящим связям нейрона уже назначены веса. Если мы возьмем объект из набора данных и представим нейрону значения входных атрибутов этого объекта, он выдаст прогноз для цели. Вычитая этот прогноз из значения целевого атрибута в наборе данных, мы сможем измерить отклонение нейрона для этого объекта. Используя ряд простых вычислений, можно вывести правило для обновления весов входящих связей нейрона с учетом выходного отклонения нейрона, чтобы уменьшить выходное отклонение. Точное определение этого правила будет варьироваться в зависимости от функции активации, используемой нейроном, поскольку она влияет на производную, используемую при выводе правила. Но можно дать следующее наглядное пояснение того, как работает правило обновления веса:

1. Если отклонение равно 0, не меняйте веса на входах.

2. Если отклонение положительное, требуется увеличить прогнозное значение, поэтому нужно прибавить веса всех связей с положительным входом и понизить веса связей с отрицательным.

3. Если отклонение отрицательное, требуется уменьшить прогнозное значение, поэтому нужно понизить веса всех связей с положительным входом и прибавить веса связей с отрицательным.

Сложность обучения нейронной сети состоит в том, что правило обновления веса требует оценки ошибки в нейроне, и, хотя вычислить ошибку для каждого нейрона в выходном слое сети довольно просто, сделать то же самое для нейронов в более ранних слоях намного сложнее. Стандартный способ обучения нейронной сети заключается в использовании алгоритма, называемого методом обратного распространения ошибки. Алгоритм обратного распространения является алгоритмом машинного обучения с учителем, поэтому он предполагает набор обучающих данных, который бы имел как входные значения, так и целевой атрибут для каждого объекта. Обучение начинается с назначения случайных весов каждой связи в сети. Затем алгоритм итеративно обновляет весовые коэффициенты, показывая сети обучающие объекты из набора данных и обновляя весовые коэффициенты до тех пор, пока сеть не начнет работать как ожидалось. Алгоритму присваивается имя, потому что после того, как каждый обучающий объект представлен сети, ее веса обновляются путем последовательных шагов в направлении назад по сети:

1. Рассчитайте ошибку для каждого из нейронов в выходном слое и обновите согласно правилу веса входящих связей этих нейронов.

2. Поделитесь ошибкой, рассчитанной для нейрона, с каждым из нейронов в предыдущем слое, который связан с ним, пропорционально весу связей между двумя нейронами.

3. Для каждого нейрона на предыдущем уровне вычислите общую ошибку сети, за которую он ответственен, суммируя с теми ошибками, которые были переданы обратно в него, и используйте результат этого суммирования, чтобы обновить веса на связях, входящих в этот нейрон.

4. Пройдите таким же образом остальные слои в сети, повторяя шаги 2 и 3 до тех пор, пока веса между входными нейронами и первым слоем скрытых нейронов не будут обновлены.

Перейти на страницу:

Похожие книги

C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных
3ds Max 2008
3ds Max 2008

Одни уверены, что нет лучшего способа обучения 3ds Мах, чем прочитать хорошую книгу. Другие склоняются к тому, что эффективнее учиться у преподавателя, который показывает, что и как нужно делать. Данное издание объединяет оба подхода. Его цель – сделать освоение 3ds Мах 2008 максимально быстрым и результативным. Часто после изучения книги у читателя возникают вопросы, почему не получился тот или иной пример. Видеокурс – это гарантия, что такие вопросы не возникнут: ведь автор не только рассказывает, но и показывает, как нужно работать в 3ds Мах.В отличие от большинства интерактивных курсов, где работа в 3ds Мах иллюстрируется на кубиках-шариках, данный видеокурс полностью практический. Все приемы работы с инструментами 3ds Мах 2008 показаны на конкретных примерах, благодаря чему после просмотра курса читатель сможет самостоятельно выполнять даже сложные проекты.

Владимир Антонович Верстак , Владимир Верстак

Программирование, программы, базы данных / Программное обеспечение / Книги по IT
Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT