31.08.2017

Перевод «Создай свою нейросеть» — 3

Третья часть перевода!

Статья не очень большая. Она охватывает только один раздел книги. Цель — показать, что у каждого метода есть свои ограничения. В статье рассматривается ограничения линейного классификатора. Также вводятся понятия логических функций и проблемы XOR.

Вы можете скачать PDF версию перевода.

Приятного чтения!

Оглавление

1 Глава. Как они работают.

1.5 Иногда одного классификатора недостаточно

Мы уже умеем создавать простые предсказатели и классификаторы, которые принимают что-то на вход, проводят какие-то подсчеты и выводят ответ. И хотя они отлично решают поставленные задачи, они не всесильны. Есть множество других проблем, с которыми они не могут справиться, но которые мы надеемся решить с помощью нейросетей.

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

Давайте оставим несчастных жуков в своем саду и рассмотрим логические (булевы) функции. Если вы не имеете понятия, что это такое — не волнуйтесь. Булевыми эти функции называются в честь английского математика Джорджа Буля. В число логических функций входят функции И и ИЛИ, также многие другие.

Логические функции оперируют не числами, а утверждениями. Например, в фразе «ты можешь съесть мороженое, если ты поел овощи И ты еще голоден» мы используем булеву функцию И. Логическое И всегда верно, когда оба условия истины. Если хотя бы одно из условий ложное, то значение логического И тоже ложь. Если я голоден, но не поел овощей, то я не могу съесть мороженое.

В фразе «Ты можешь съездить на дачу, если сейчас выходные ИЛИ ты в отпуске» мы используем булеву функцию ИЛИ. Логическое ИЛИ верно, если одно условие или оба сразу истины. Если я сейчас не в отпуске, но сегодня суббота, то я могу съездить на дачу.

Предсказательная машина из первого раздела принимала что-то на вход, что-то считала и выводила ответ. Булевы функции похожи на эту машину, но они принимают сразу два входа и выдают один ответ:

Принято сокращенно обозначать истину 1, а ложь за 0. На таблице ниже отображены все возможные пары входов ​\( A \)​ и ​\( B \)​, а также значения логического И и ИЛИ для каждой пары.

Вход А Вход Б Логическое И Логическое ИЛИ
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1

Сразу видно, что логическое И истино только тогда, когда и ​\( A \)​ и ​\( B \)​ истины. А вот логическое ИЛИ истино всегда, когда хотя бы один из входов истинный.

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

Представьте, что вы используете линейный классификатор, обученный на данных, которые основываются на какой-то логической функции. Такой подход часто используют учены для выявления связей между полученными связями. Например, заболевание малярия распространено в регионах с частыми дождями И с высокой температурой? Можеть быть малярия распространяется сильнее когда хотя бы одно (логическое ИЛИ) из этих условий верно?

Посмотрите на график ниже. Кружками на нем изображены возможные комбинации входов ​\( A \)​ и ​\( B \)​. Мы видим, только когда оба входа есть истина (равны 1), то и значение функции тоже истино (зеленый цвет кружка). Кружки, приводящие к ложным значениям логической функции окрашены в красный цвет.

Логическое И

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

Итак мы знаем, что простой линейный классификатор, описывающийся уравнением ​\( y = Ax + B \)​ может научиться работать с логическим И.

Проверим, способен ли линейный классификатор справиться с логическим ИЛИ?

Логическое ИЛИ

Сейчас на графике только один красный кружок, так как логическое ИЛИ всегда возвращает истину, кроме того случая, когда оба входа ложны. Как и в случае с логическим И мы сразу видим, что мы можем отделить истинные значения функции от ложных с помощью простого простого линейного классификатора.

Но существует еще одна логическая функция. Ее называют XOR или исключающим ИЛИ. Она возвращает истину только тогда, когда один из входов истинный, но не оба сразу. Когда оба входа ложны или истины, функция возвращает 0. Исключающее ИЛИ можно описать с помощью таблицы ниже:

Вход А Вход Б Исключающее ИЛИ
0 0 0
0 1 1
1 0 1
1 1 0

Визуализируем эту таблицу:

Исключающее ИЛИ (XOR)

А вот это уже задачка посложнее! Судя по всему, мы не можем отделить зеленые кружки от красных с помощью одной прямой.

На самом деле это доказанный факт. Невозможно провести одну прямую таким образом, чтобы разделить значения исключающего ИЛИ. Сколько вы не тренируйте простой линейный классификатор — ничего из этого не выйдет. Если ваши научные данные по свой сути распределяются по принципу XOR, то вы не сможете построить корректный классификатор.

Вот мы и нашли границу применимости линейного классификатора. Линейный классификатор можно применить только для данных, которые можно как-то разделить прямой.

Но мы хотим, чтобы нейронные сети решали проблемы и с линейно неразделимыми данными — там, где одна прямая линия нам не поможет.

Как же решить эту проблему?

К счастью, решение достаточно простое. Надо всего лишь добавить еще одну прямую — еще один линейный классификатор. Эта идея тоже лежит в основе нейросетей. Вы можете представить множество линий, которые вместе разделяют даже самые хитроумные регионы данных.

Исключающее ИЛИ (XOR)

Прежде чем мы приступим к рассмотрению нейросетей, которые состоят из совокупности нескольких линейных классификаторов, давайте посмотрим, как работают нейронные сети, созданные самой природой — мозги.

Ключевые моменты

  • Простой линейный классификатор не способен правильно разделить данные, которые по свой сути неразделимы с помощью прямой. Например, данные, которые распределяются по принципу исключающего ИЛИ.
  • Однако, эти проблемы решаются добавлением дополнительных классификаторов, которые вместе разделяют данные на регионы разной формы.
Аватара автора Петр Радько

Петр Радько

Сфера интересов — нейросети как стык передовых исследований по математике, биологии, информатике и физике. Мне нравится делиться тем, что я узнал. Считаю, что любую концепцию можно изложить просто и наглядно. Нейронные сети на глазах меняют наш мир. И надо знать их и уметь ими пользоваться!

Комментарии

«Принято сокращенно обозначать истину 1, а ложь за 0. На таблице ниже отображены все возможные пары входов $A$ и $B$, а также значения логического И и ИЛИ для каждой пары» Доллары лишние

disko23
disko23

Может я туплю) но походу эта фраза противоречит примеру с логическим И
«Если я голоден, но поел овощей, то я не могу съесть мороженое»

disko23
disko23

На самом деле в переводе достаточно большое количество опечаток. Может как-нибудь сяду, составлю список и вышлю вам.
И еще, как-то раз я поднимал вопрос о возможности помощи проекту…

Боже… Дождался… Спустя 8 лет, как я впервые наткнулся на нейросети, выходит что-то стоящее, полезное и ПРОСТЫМ языком

wpDiscuz
Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: