Введение в машинное обучение со скоростью света

машинное обучение
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

контролируемое обучение

训练数据由一组训练实例组成。在监督学习中,每一个例子都是一对由一个输入对象(通常是一个向量)和一个期望的输出值(也被称为监督信号)。有监督学习算法分析训练数据,并产生一个推断的功能,它可以用于映射新的例子。一个最佳的方案将允许该算法正确地在标签不可见的情况下确定类标签。用已知某种或某些特性的样本作为训练集,以建立一个数学模型(如模式识别中的判别模型,人工神经网络法中的权重模型等),再用已建立的模型来预测未知样本,此种方法称为有监督学习。是最常见的机器学习方法。

Линейная регрессия (алгоритм градиентного спуска)

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w'x+e,e为误差服从均值为0的正态分布。回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

Самообучение машинному обучению на какое-то время — небольшой выигрыш.Начнем с простейшей линейной регрессии :)

Рассказывают, что однажды вы шли по улице и проходили мимо агентства недвижимости, на стекле которого были написаны цены на различные виды недвижимости, а вы сокрушались, что не можете позволить себе туалет после десяти лет жизни. работа, вы тоже думали о цене дома.Какие факторы?(ps: почему дом такой дорогой???) В общем, чем больше дом, тем дороже цена, так что это можно считать тотплощадь домаЭто фактор, влияющий на цену дома. Предположим, что цена дома составляет всегоплощадь дома,количество комнатрешение, то линейное выражение для цены дома:

h_\theta(x) = \theta_0 + \theta_1x_{房子的面积} + \theta_2x_{房间的数量}

\thetaпредставляет собой вес каждой функции, где\theta_0представляет член перехвата (постоянный член), когда количество признаков велико, мы можем упростить линейное уравнение с помощью следующего выражения:

h_\theta(x) = \sum_{i=0}^{n}\theta_ix_i = \theta^Tx

вnпредставляет количество функций,x_0 = 1и справа\thetaиxвекторное выражение

Итак, наше гипотетическое уравнение родилось! Итак, вопрос в том, как мы выбираем\thetaШерстяная ткань? Для решения этой задачи определим здеськвадрат функции потерьза:

J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2

вmпредставлятьколичество обучающих выборок,x^{(i)}представительiКусокОсобенности обучающих выборок,y^{(i)}представительiКусокмишень для обучающих выборок, нетрудно видеть, что чем меньше значение функции потерь,Гипотетическое значение функциииистинное целевое значениечем ближе

В это время мы можем использоватьАлгоритм градиентного спускавыяснитьМинимизируйте функцию потерьиз\theta

Представьте, что такоеградиент:

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。 				---- 百度百科

С точки зрения непрофессионала,Градиент — это вектор, представляющий направление максимального изменения функции, для унарной функции градиент является производной функции

Так что жеградиентный спускШерстяная ткань? Градиентный спуск означаетФункция быстрее всего спускается по отрицательному направлению градиента на плоскости текущей точки (более высокие измерения не являются плоскостями), так почему это? См. следующий процесс вывода:

梯度下降原理推导
То есть, согласно следующей формуле, мы можем получить то, что хотим\theta

\theta_j := \theta_j - \alpha_{学习速率}\frac{\partial}{\partial\theta_j}J(\theta)

Тогда в приведенной выше формуле\frac{\partial}{\partial\theta_j}J(\theta)Как попросить об этом?

\frac{\partial}{\partial\theta_j}J(\theta) = \frac{\partial}{\partial\theta_j}\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2
= \sum_{i=1}^{m}\frac{1}{2}\frac{\partial}{\partial\theta_j}(h_\theta(x^{(i)}) - y^{(i)})^2
= \sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})\frac{1}{2}\cdot 2 \frac{\partial}{\partial\theta_j} (\sum_{j=0}^{n}\theta_jx^{(i)}_j - y^{(i)})
= \sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})x_j^{(i)}

Наконец мы получаемАлгоритм пакетного градиентного спуска:

Repeat until convergent{

\theta_j := \theta_j - \alpha\sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})x_j^{(i)}

            (for every j) }

Когда целевая функция выпукла, решение градиентного спуска является глобальным решением. В общем случае не гарантируется, что решение будет глобальным оптимальным решением. это здесь,J(\theta)является выпуклой функцией, поэтому мы можем получитьглобальное оптимальное решение(Предполагая, что скорость обучения\alphaдостаточно небольшой)

В соответствии с алгоритмом пакетного градиентного спуска каждая итерация веса должна работать со всем обучающим набором (Медленный!), поэтому, когда обучающая выборка особенно велика, мы можем рассмотреть выборАлгоритм стохастического градиентного спуска:

Loop{             for i=1 to m, {

\theta_j := \theta_j - \alpha(h_\theta(x^{(i)}) - y^{(i)})x_j^{(i)}

            (for every j)         } }Как можно видеть,Стохастический градиентный спускДля каждой итерации веса требуется толькоединая обучающая выборкаВыполняйте операции и сравнивайте скоростьпакетный градиентный спускЧтобы улучшить многое, хотя стохастический градиентный спуск не обязательно гарантирует\thetaсходятся (вJ(\theta)колеблется на минимуме), но в принципе можно получить приближение, близкое к минимуму Пока что я считаю, что у всех есть предварительное представление об алгоритме градиентного спуска, увидимся в следующей главе.

Приветствую всех, чтобы отсканировать код и подписаться на мою официальную учетную запись «Интеллектуальное автоматизированное тестирование», ответьте:Учебник по расширенному тестированию, вы можете получить его бесплатноРасширенный учебник ~