Согласен с Вами, в этом примере класс — это бикатегориальный тип. Клиент либо купил (1), либо нет (0). Но я пытался описать общий случай, например при распознавание рукописных цифр классов будет десять, и выходной слой нейросети будет иметь столько же нейронов (one-hot):
• «0» = (1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
• «1» = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0)
• «2» = (0, 0, 1, 0, 0, 0, 0, 0, 0, 0)
•…
• «9» = (0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
При обучении мы будем требовать чтобы возбуждался нейрон, отвечающий за класс со значением близким к единице, а все остальные нейроны «молчали» — выдавали значения близкие к нулю. Логика при обучении останется той же, что и с одним нейроном, только в случае, когда классов больше двух, количество нейронов в выходном слое будет соответствовать количеству классов.
Да, можно за счет точности. Обычно, в случае одного нейрона, решение о классе принимается в том случае, если значение его выхода (после активации) больше одной второй (hw(x) > 0.5). Без активации (как в случае скоринга) значение больше 0 (больше порога). Так вот этот порог можно сдвинуть, например, принимая решение о классе при вероятности 0.4 или 0.3, тем самым повысить полноту за счет точности. То есть уменьшить ошибку второго рода за счет ошибки первого.
Deep Learning Stack — это стэк из нескольких моделей глубинного обучения. Например, фото может подаваться на сверточную нейросеть CNN, затем выход будет подаваться на рекуррентную LSTM, которая будет пытаться описывать то, что видит на изображении принимая на вход предыдущее слово (начиная со start и кончая end токеном) и снова обращаясь к выходу CNN (механизм внимания). Именно за разработкой новых архитектур и за грамотной композицией уже известных моделей — будущее deep learning.
Вы правы, логистическая кривая интересна тем, что обладает квазилинейным участком в области нуля, и это свойство можно использовать для усиления слабых сигналов. Кроме того она ограничивает, как вы сказали, большие амплитуды. Интересным свойством логистической кривой является ее «насыщение». Она является кривой дозы-эффекта в медицине, кривой обучения в Павловских экспериментах, функцией активации математического нейрона, но первый раз в жизни я столкнулся с ней, как с решением логистического уравнения при рассмотрении модели роста численности популяции, скорость размножения которой пропорциональна её текущей численности и количеству доступных ресурсов (без ограничения по доступным ресурсам рост был бы экспоненциальным).
RNN архитектура предполагает, что значения выхода нейросети во времени tn будут частью ее входа во времени tn+1. Например LSTM обладает возможность находить зависимости сквозь тысячи символов в тексте. В этом основная особенность рекуррентных нейросетей — находить взаимосвязи во времени. CNN же проходится окошком (вектором, матрицей или тензором — ядром свертки) по всему распределению данных. Так что и сверточная нейронная сеть способна к нахождению паттернов (закономерностей) в временном ряде, но длительность этих закономерностей будет ограничена размером окна.
Скажу честно, несколько лет назад я взял оттуда не просто пару формул, а большой багаж знаний. Я сам очень рекомендую этот курс, он просто чудесный. Лектор Andrew Ng не только специалист в своей области, но и прекрасный учитель, который смог изложить структурно и доступно такой нелегкий материал. Курс посвящен «классическому» (до «deep», если можно так сказать) машинному обучению, и охватывает не только обучение на размеченных данных: нейросети, SVM (метод опорных векторов) и регрессионные модели, но и обучение без учителя (англ. unsupervised learning): кластеризация (на основе метода k-средних), PCA (метод главных компонент). Deep Learning я учил уже сам. Могу порекомендовать два цикла лекций, которые помогли мне в основных направлениях современного машинного обучения (глубокое обучение). Это:
Верно. В контексте статьи мы имеем вектор признаков клиента, не обладающий ни временной ни пространственной зависимостью. Я привел эти модели (convolutional and recurrent neural networks), как пример мощных, но тяжело интерпретируемых человеком (можно, но сложно восстановить всю цепочку «мыслей» нейросети) инструментов. CNN имеет смысл использовать в тех случаях, когда вектор признаков не желательно перетасовывать (если у нас есть кол-во обращений пользователя по дням в течении года, то CNN сможет найти паттерны и построить гипотезы из распределения его обращений). А RNN использовать в тех случаях, когда объект представлен временной последовательностью векторов признаков (если пользователь проявлял одну активность, затем другую, то возможно его поведенческий «стэйт» изменился, и RNN сможет отследить это).
Спасибо, Вы правы, исправил.
1) На графике была опечатка, там имелась в виду рекуррентная нейросеть.
2) Действительно, применение сверточной нейросети (CNN) в скоринг задаче и я себе слабо представляю, так как не вижу возможных пространственно распределенных данных. А вот применение рекуррентной нейросети (RNN) возможно в тех случаях, когда клиент или пользователь имеет временную историю действий или обращений. Такая архитектура сможет установить взаимосвязи в действиях объекта, понять к чему эти действия приводят.
Спасибо. Я старался подать материал так, чтобы он не спугнул новичков в этой области, стараясь при этом не упускать и не упрощать теорию.
Будут и более глубокие статьи по машинному обучению.
• «0» = (1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
• «1» = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0)
• «2» = (0, 0, 1, 0, 0, 0, 0, 0, 0, 0)
•…
• «9» = (0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
При обучении мы будем требовать чтобы возбуждался нейрон, отвечающий за класс со значением близким к единице, а все остальные нейроны «молчали» — выдавали значения близкие к нулю. Логика при обучении останется той же, что и с одним нейроном, только в случае, когда классов больше двух, количество нейронов в выходном слое будет соответствовать количеству классов.
1) На графике была опечатка, там имелась в виду рекуррентная нейросеть.
2) Действительно, применение сверточной нейросети (CNN) в скоринг задаче и я себе слабо представляю, так как не вижу возможных пространственно распределенных данных. А вот применение рекуррентной нейросети (RNN) возможно в тех случаях, когда клиент или пользователь имеет временную историю действий или обращений. Такая архитектура сможет установить взаимосвязи в действиях объекта, понять к чему эти действия приводят.
Будут и более глубокие статьи по машинному обучению.