Рубрики
Без рубрики

Обучение через градиентный спуск

Редактировать: dev.to Иногда форматирует математику неправильно. Чтобы увидеть оригинальный пост с математикой правильно … Теги с Python, MachineLearning, учебником.

Демистификация глубокого обучения (5 частей серии)

Редактировать: dev.to Иногда форматирует математику неправильно. Чтобы увидеть оригинальный пост с математикой, правильно оказанным Голова здесь Действительно

Посмотрев линейную и логистическую регрессию, мы посмотрим, как эти алгоритмы «учится».

Функции потери:

Для алгоритма машины для изучения, ему нужен какой-то способ оценки его производительности. Функция потери (Функция AKA затрат) – это функция, которая количественно определяет ошибки в его прогнозах – более низкая ошибка лучше. Таким образом, способ улучшения алгоритма состоит в том, чтобы минимизировать эту функцию потери, которая, если выбрана правильно, также приведет к обучению модели. Алгоритм может настроить свои веса и предубеждения, чтобы получить значение функции потерь как можно ниже. При размышлениях о правильной функции потери использования, она помогает подумать о проблеме, которую мы пытаемся решить:

Интуиция: Для линейной регрессии мы хотим построить прямую линию Best Fit – то есть то, что так близко к тому, что многие из точек. Таким образом, одна хорошая идея – минимизировать среднее расстояние между прямой и точками. В n n n Размеры, мы рассмотрим расстояние между точкой и гиперплоскостью – то есть разница между прогнозированием (Проекция значения на самолет) и фактическая ценность. Затем мы его квадрат (так что это гарантирует, что значение всегда положительное), а затем сделайте это для всех прогнозов и принять среднее значение.

Математика: Обозначим функцию потери как J ( W , B ) J (w, b) J ( W , B ) Отказ Обратите внимание на фактор 1 2 \ frac {1} {2} 2 1 для удобства.

J ( W , b ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 J (w, b) = \ frac {1} {2m}} ^ {m} (\ hat {y y} ^ {(i)} – ^ {(i)}) ^ 2 J ( W , b ) = 2 m 1 ​ ∑ i = 1 m ​ ( y ^ ​ ( i ) − y ( i ) ) 2

Код: Как до того, как мы продолжаем те же мотивирующие примеры цен на жилье для линейной регрессии и рака молочной железы для логистической регрессии. Вы можете получить доступ к полному коду в сопроводительном Jupyter ноутбук Отказ

def MSE_loss(Y, Y_pred):
   m = Y.shape[1]
   return (1.0/(2*m))*np.sum(np.square(Y_pred-Y))

Далее, двигаясь на логистическую регрессию:

Интуиция: Целью от логистической регрессии состоит в том, чтобы максимизировать вероятность получения правильной этикетки по всем примерам.

Математика: Здесь легче представить интуицию поперечной математике:

Для одного примера мы хотим:

W , b a r g m a x P ( y ∣ x ; W , b ) _ {W, b} ^ {argmax} p (y | x; w, b) W , b a r g m a x ​ P ( y ∣ x ; W , b )

Это переводит на поиск W , B W, B W , B это максимизация вероятности получения правильной этикетки y y y Учитывая ценность х х х , параметризован W , B W, B W , b . Поскольку каждый пример обучения не зависит друг от друга, чтобы получить полную вероятность, мы умножим вероятности вместе:

W , b a r g m a x ∏ i = 1 m P ( y ( i ) ∣ x ( i ) ; W , b ) {W, b} ^ {argmax}} ^ {m} p (y ^ {(i)} | x ^ {(i)}; w, b) W , b a r g m a x ∏ i = 1 m P ( y ( i ) ∣ x ( i ) ; W , b )

Это может привести к подведению, при умножении крошечных вероятностей вместе, поэтому вместо этого мы принимаем журнал и максимизируем это. С бревно ( x y ) = бревно х + Журнал y \ log {(xy)} = \ log {x + \ log {y}} воплощение g ( x y ) = воплощение g х + воплощение g y У нас сейчас есть:

W , b a r g m a x ∑ i = 1 m бревно ⁡ P ( y ( i ) ∣ x ( i ) ; W , b ) {W, b} ^ {argmax}} ^ {m} \ log {p (y ^ {((i)} | x ^ {(i)}; w, b)} W , b a r g m a x ∑ i = 1 m воплощение g P ( y ( i ) ∣ x ( i ) ; W , b )

Если мы вспомним нашу интерпретацию вывода логистической регрессии, у нас есть это:

P ( y ( i ) ∣ x ( i ) ; W , b ) = { y ^ ( i ) если y ( i ) = 1 1 − y ^ ( i ) если y ( i ) = 0 P (y ^ {(i)} | x ^ {(i)}; w, b) = \ begin {face} \ hat {y} ^ {(i)} & \ text {Если} \ 1 – \ hat {y} ^ {(i)} & \ text {Если} \ end {случаи} P ( y ( i ) ∣ x ( i ) ; W , b ) = { y ^ ​ ( i ) ​ если y ( i ) = 1 1 − y ^ ​ ( i ) ​ если y ( i ) = 0 ​

Вместе все эти кусочки вместе, настало время посмотреть на функцию потери для логистической регрессии:

J ( W , b ) = − 1 m ∑ i = 1 m y ( i ) бревно ⁡ ( y ^ ( i ) ) + ( 1 − y ( i ) ) бревно ⁡ ( 1 − y ^ ( i ) ) J (w, b) = \ frac {-1} {m}} ^ {m} y ^ {(i)} \ log (\ hat {y y} ^ {(i)}) + (1-y ^ {(i)}) \ log (1- \ hat {y} ^ {(i)}) J ( W , b ) = m − 1 ​ ∑ i = 1 m ​ y ( i ) воплощение g ( y ^ ​ ( i ) ) + ( 1 − y ( i ) ) воплощение g ( 1 − y ^ ​ ( i ) )

Разрыв это вниз:

  • Во-первых, у нас есть отрицательный знак перед всей выражением: это потому, что мы хотим максимизировать вероятность журнала, но мы можем только минимизировать функцию потери.
  • Мы разделяем сумму по м м м – Это соответствует «средней» вероятности, а с м м м одинаково для всех W С B W, B W , b Это не влияет на нашу цель.

  • В суммировании есть два термина: первый это бревно P ( y ( i ) = 1 |. x ( я ) ; W , b ) \ log {p (y ^ {(i)} = 1 | x ^ {(i)}; w, b)} воплощение g P ( y ( i ) = 1 |. x ( я ) ; W , b ) а второй – бревно P ( y ( i ) = 0 |. x ( я ) ; W , B ) \ log {p (y ^ {(i)} = 0 | x ^ {(i)}; w, b)} воплощение g P ( y ( i ) = 0 |. x ( я ) ; W , b ) . Эти объединения, чтобы дать бревно P ( y ( я ) |. x ( я ) ; W , b ) \ log {p (y ^ {(i)} | x ^ {(i)}; w, b)} воплощение g P ( y ( я ) |. x ( я ) ; W , b ) С каких пор y = 0 y = 0. y = 0. только второй термин способствует и Аналогично, когда y = 1 y = 1. y = 1 Только первый член способствует, поскольку y ( я ) ^ {(i)} y ( i ) и 1 y ( я ) 1 – Y ^ {(i)} 1 y ( i ) Условия устанавливают другую до нуля соответственно.

Код:

def log_loss(Y, Y_pred):
m = Y.shape[1]
    return (-1.0/m)*np.sum(Y*np.log(Y_pred) + (1-Y)*np.log(1-Y_pred))

Так что теперь, когда мы определили нашу функцию потери, давайте посмотрим на то, как мы его минимизируем:

Градиентный спуск:

Интуиция:

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

Наклон поверхности – это градиент в этой точке, и поэтому мы хотим, чтобы мы хотим принимать шаги в направлении вниз по градиенту до минимума, где градиент 0. Это алгоритм спуска градиента.

Математика:

Уравнение обновления градиента спускается следующим образом:

W = W − α ∂ J ∂ W W = w – \ alpha \ frac {\ partial \ mathcal {j}} {\ partial w} W = W − α ∂ W ∂ J ​

b = b − α ∂ J ∂ b B – \ alpha \ frac {\ partial \ mathcal {j}} {\ partial b} b = b − α ∂ b ∂ J ​

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

Теперь пришло время вычислить ∂. J W \ frac {\ partial {j}} {\ partial w} W ∂. J и ∂. J B \ frac {\ partial {j}} {\ partial b} B ∂. J .

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

Некоторые идеи, которые стоит иметь в виду, когда мы идем в этот расчет и более сложные выражения позже:

  • Частичная производная интуиция : Думаю о y х \ frac {\ partial {y}} {\ partial {x}} х y свободно, как количественно, сколько у y y изменится, если вы дали ценность х х х немного “подталкиваю” в точке.
  • Разбиение вычислений – Мы можем использовать Правило цепи Чтобы помочь нам в наших вычислениях – вместо того, чтобы пытаться вычислить производное в одном палам, мы распадаем вычисление на более мелкие промежуточные шаги.

  • Вычислить правило цепочки – При думании о том, какие промежуточные значения включают в наше выражение правила цепочки, подумайте о немедленных выходах уравнений, связанных с х х х – какие другие значения напрямую влияют, когда я немного подталкиваю х х х ?

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

Во-первых, линейная регрессия – мы сломаемся на два шага:

y ^ ( i ) = ∑ j = 1 n W j x j ( i ) + b \ Hat {y} ^ {(i)} =} ^ {n} w_jx ^ {(i)} _ j + b y ^ ​ ( i ) = ∑ j = 1 n ​ W j ​ x j ( i ) ​ + b

J ( W , b ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 J (w, b) = \ frac {1} {2m}} ^ {m} (\ hat {y y} ^ {(i)} – ^ {(i)}) ^ 2 J ( W , b ) = 2 m 1 ​ ∑ i = 1 m ​ ( y ^ ​ ( i ) − y ( i ) ) 2

Давайте рассмотрим один конкретный прогноз y ^ ( i ) \ hat {y} ^ {(i)} y ^ ( i ) Интуитивно, подтяжка это повлияет на ошибку только в квадрате для этого примера i i Я и действительно принимая частичное производное:

J y ^ ( i ) = 1 м ( y ^ ( i ) y ( я ) ) \ frac {\ partial {j}} {\ partial {\ hat {y} ^ {((i)}}} = \ frac {1} {m} (\ Hat {y} ^ {(i)} – y ^ {(я)}) y ^ ( i ) J = м 1 В ( y ^ ( i ) y ( я ) ) (обратите внимание на фактор 1 2 \ frac {1} {2} 2 1 в J отменил, чтобы уйти 1 м \ frac {1} {m} м 1 .)

Для этого Я т h I ^ {th} Я т h Пример Давайте рассмотрим влияние ограничения определенного веса W J W_j. W j – Интуитивно, так как он умножается на х j ( i ) х ^ {(i)} _ j х J ( i ) В расчете соответствующая сумма y ^ ( i ) \ hat {y} ^ {(i)} y ^ ( я ) будет двигаться х J ( i ) х ^ {(i)} _ j х J ( i ) раз, которые подталкивают. И Так как предвзятость B B B не умножается на все, что подталкивающий должен быть такой же величины. Действительно, математика отражает это:

∂ y ^ ( i ) ∂ W j = x j ( i ) \ frac {\ partial {\ hat {y} ^ {(i)}}} {\ partial {w_j}} ^ {(i)} _ j ∂ W j ​ ∂ y ^ ​ ( i ) ​ = x j ( i ) ​

∂ y ^ ( i ) ∂ b = 1 \ frac {\ partial {\ hat {y} ^ {(i)}}} {\ partial {b}} ∂ b ∂ y ^ ​ ( i ) ​ = 1

Теперь мы смотрели на частичную производную интуицию, давайте посмотрим на вычисление правила цепи. Если мы вынум W J W_j. W j или B B преступность Интуитивно мы повлияли на все прогнозы, поэтому нам нужно суммировать в примерах i i i . Таким образом, у нас есть это:

∂ J ∂ W ∗ j = ∑ ∗ i = 1 m ∂ J ∂ y ^ ( i ) ∂ y ^ ( i ) ∂ W ∗ j = 1 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) ∗ x j ( i ) \ frac {\ partial {j}} {\ partial {w * j}} =} ^ {m} \ frac {\ partial {j}} {\ partial {\ hat {y} ^ {((i)}}} \ frac {\ partial {\ hat {y} ^ {(i)}}} {\ partial {w * j}} = \ frac {1} {m}} ^ {m} (\ hat {y} ^ {{ (i)} – y ^ {(i)}) * x ^ {(i)} _ j ∂ W ∗ j ∂ J ​ = ∑ ∗ i = 1 m ∂ y ^ ​ ( i ) ∂ J ​ ∂ W ∗ j ∂ y ^ ​ ( i ) ​ = m 1 ​ ∑ i = 1 m ( y ^ ​ ( i ) − y ( i ) ) ∗ x j ( i ) ​

и:

∂ J ∂ b = ∑ ∗ i = 1 m ∂ J ∂ y ^ ( i ) ∗ ∂ y ^ ( i ) ∂ b = 1 m ∑ ∗ i = 1 m ( y ^ ( i ) − y ( i ) ) \ frac {\ partial {j}} {\ partial {b}} =} ^ {m} \ frac {\ partial {j}} {\ partial {\ hat {y} ^ {(i)}}} * \ \ frac {\ partial {\ hat {y} ^ {(i)}}} {\ partial {b}} = \ frac {1} {m}} ^ {m} (\ hat {y} ^ {((i) } – Y ^ {(i)}) ∂ b ∂ J ​ = ∑ ∗ i = 1 m ∂ y ^ ​ ( i ) ∂ J ​ ∗ ∂ b ∂ y ^ ​ ( i ) ​ = m 1 ​ ∑ ∗ i = 1 m ( y ^ ​ ( i ) − y ( i ) )

Теперь мы можем перейти на случай логистической регрессии – мы представим промежуточный шаг z ( я ) k ^ {((i)} z ( я ) :

J ( W , b ) = − 1 m ∑ i = 1 m y ( i ) бревно ⁡ y ^ ( i ) + ( 1 − y ( i ) ) бревно ⁡ ( 1 − y ^ ( i ) ) J (w, b) = \ frac {-1} {m}} ^ {m} y ^ {(i)} \ log \ hat {y y} ^ {((i)} + (1-y ^ {(i )}) \ log (1- \ Hat {y} ^ {(i)}) J ( W , b ) = m − 1 ​ ∑ i = 1 m ​ y ( i ) воплощение g y ^ ​ ( i ) + ( 1 − y ( i ) ) воплощение g ( 1 − y ^ ​ ( i ) )

y ^ ( i ) = σ ( z ( i ) ) = 1 1 + e − z ( i ) \ hat {y} ^ {(i)} = \ sigma (z ^ {(i)}) = \ FRAC {1} {1 + E ^ {- z ^ {((i)}}} y ^ ​ ( i ) = σ ( z ( i ) ) = 1 + e − z ( i ) 1 ​

z ( i ) = ∑ j = 1 n W j x j ( i ) + b k ^ {(i) } =} ^ {n} w_jx ^ {(i)} _ j + b z ( i ) = ∑ j = 1 n ​ W j ​ x j ( i ) ​ + b

Опять же, подтягивая у ^ ( i ) \ hat {y} ^ {(i)} y ^ ( я ) повлияет только на ошибку для этого примера i i Я :

∂ J ∂ y ^ ( i ) = − 1 m ( y ( i ) y ^ ( i ) − 1 − y ( i ) 1 − y ^ ( i ) ) \ frac {\ partial {j}} {\ partial {\ hat {y} ^ {(i)}}} = \ frac {-1} {m} (\ frac {y ^ {((i)}} {\ \ шляпа {y} ^ {(i)}} – \ frac {1-y ^ {(i)}} {1- \ hat {y} ^ {(i)}}) ∂ y ^ ​ ( i ) ∂ J ​ = m − 1 ​ ( y ^ ​ ( i ) y ( i ) ​ − 1 − y ^ ​ ( i ) 1 − y ( i ) ​ )

Производное y ^ ( i ) \ hat {y} ^ {(i)} y ^ ( i ) Что касается z ( я ) k ^ {((i)} z ( я ) можно переставить:

d y ^ ( i ) d z ( i ) = e − z ( i ) ( 1 + e − z ( i ) ) 2 = 1 1 + e − z ( i ) ( e − z ( i ) + 1 1 + e − z ( i ) − 1 1 + e − z ( i ) ) = σ ( z ( i ) ) ( 1 − σ ( z ( i ) ) ) = y ^ ( i ) ( 1 − y ^ ( i ) ) \ frac {d \ hat {y y} ^ {(i)}} {dz ^ {(i)}} = \ frac {e ^ {- z ^ {(i)}}} {(1 + e ^ {- z ^ {(i)}}) ^ 2} = \ frac {1} {1 + e ^ {- z ^ {((i)}}} (\ frac {e ^ {- z ^ {(i)}} +1} {1 + e ^ {- z ^ {(i)}}} – \ frac {1} {1 + e ^ {- z ^ {((i)}}}) = \ sigma (z ^ {(( i)}) (1- \ sigma (z ^ {(i)}))) = \ Hat {y} ^ {(i)} (1- \ шляпа {y} ^ {(i)}) d z ( i ) d y ^ ​ ( i ) ​ = ( 1 + e − z ( i ) ) 2 e − z ( i ) ​ = 1 + e − z ( i ) 1 ​ ( 1 + e − z ( i ) e − z ( i ) + 1 ​ − 1 + e − z ( i ) 1 ​ ) = σ ( z ( i ) ) ( 1 − σ ( z ( i ) ) ) = y ^ ​ ( i ) ( 1 − y ^ ​ ( i ) )

Это аккуратный результат, чтобы помнить: Σ ( x ) = Σ ( X ) ( 1 Σ ( x ) ) \ sigma ‘(x) = \ sigma (x) (1- \ sigma (x)) Σ « ( x ) = Σ ( X ) ( 1 Σ ( x ) )

Отлично, после этого алгебраического перестройки у нас приятный результат, поэтому давайте вычислить правило цепочки – обратите внимание на подтупку в z ( я ) k ^ {((i)} z ( я ) только влияет на y ^ ( i ) \ hat {y} ^ {(i)} y ^ ( i ) так:

∂ J ∂ z ( i ) = ∂ J ∂ y ^ ( i ) ∗ d y ^ ( i ) d z ( i ) = − 1 m ( y ( i ) y ^ ( i ) − 1 − y ( i ) 1 − y ^ ( i ) ) y ^ ( i ) ( 1 − y ^ ( i ) ) \ frac {\ partial {j}} {\ partial {z ^ {((i)}}} = \ frac {\ partial {j}} {\ partial {\ hat {y} ^ {(i)}}} * \ frac {d \ hat {y y} ^ {(i)}} {dz ^ {((i)}} = \ frac {-1} {m} (\ frac {y ^ {((i)}} {\ hat {y} ^ {(i)}} – \ frac {1-y ^ {(i)}} {1- \ hat {y} ^ {((i)}}) \ hat {y} ^ {(i) } (1- \ шляпа {y} ^ {(i)}) ∂ z ( i ) ∂ J ​ = ∂ y ^ ​ ( i ) ∂ J ​ ∗ d z ( i ) d y ^ ​ ( i ) ​ = m − 1 ​ ( y ^ ​ ( i ) y ( i ) ​ − 1 − y ^ ​ ( i ) 1 − y ( i ) ​ ) y ^ ​ ( i ) ( 1 − y ^ ​ ( i ) )

Так что у нас есть, умножение:

∂ J ∂ z ( i ) = − 1 m [ y ( i ) ( 1 − y ^ ( i ) ) − y ^ ( i ) ( 1 − y ( i ) ) ] = 1 m ( y ^ ( i ) − y ( i ) ) \ frac {\ partial {j}} {\ partial {z ^ {(i)}}} = \ frac {-1} {m} [y ^ {(i)} (1- \ шляпа {y} ^ {(i)}) – \ hat {y} ^ {(i)} (1-y y ^ ^ {(i)})] = \ frac {1} {m} (\ hat {y} ^ {(i)} – y ^ {(i)}) ∂ z ( i ) ∂ J ​ = m − 1 ​ [ y ( i ) ( 1 − y ^ ​ ( i ) ) − y ^ ​ ( i ) ( 1 − y ( i ) ) ] = m 1 ​ ( y ^ ​ ( i ) − y ( i ) )

Если мы сравним с линейной регрессией, оказывается, что уравнения для частичных производных для W j W_J W j и B преступность B одинаковы, так как уравнение для z ( я ) k ^ {((i)} z ( i ) в логистической регрессии такой же, как у ^ ( i ) \ hat {y} ^ {(i)} y ^ ( я ) в линейной регрессии.

У нас просто один последний шаг, чтобы закончить вещи! Как и в последнем посте, мы можем переписать уравнение для J W \ frac {\ partial {j}} {\ partial {w}} ∂. W ∂. J Как умножение матрицы: обратите внимание, что W W W это 1 х n Матрица, X X Х это м х n Матрица и Y У Y это 1 х м матрица Так:

∂ J ∂ W ∗ 1 j = 1 m ∑ ∗ i = 1 m ( Y ^ − Y ) 1 i ∗ X j i = 1 m ∑ ∗ i = 1 m ( Y ^ − Y ) ∗ 1 i ∗ X i j T \ frac {\ partial {j}} {\ partial {w * 1j}} =} ^ {m} (\ hat {y} – y) {1i} * x {ji} =} ^ {m} (\ hat {y} – y) * {1i} * x ^ t_ {ij} ∂ W ∗ 1 j ∂ J ​ = m 1 ​ ∑ ∗ i = 1 m ( Y ^ − Y ) 1 i ∗ X j i = m 1 ​ ∑ ∗ i = 1 m ( Y ^ − Y ) ∗ 1 i ∗ X i j T ​

∂ J ∂ W = 1 m ( Y ^ − Y ) . X T \ frac {\ partial {j}} {\ partial {w}} = \ frac {1} {m} (\ hat {y} – y) .x ^ t ∂ W ∂ J ​ = m 1 ​ ( Y ^ − Y ) . X T

Уравнение для J B \ frac {\ partial {j}} {\ partial {b}} B ∂. J одинаково, только то, что мы используем подписки для матрицы У 1 Я Y_ {1i} Y 1 i вместо y ( я ) ^ {(i)} y ( я ) и то же самое для У ^ \ hat {y} У ^ .

Поэтому, нарушая его на многие маленькие шаги, у нас есть наши последние уравнения (как для линейной, так и для логистической регрессии):

∂ J ∂ W = 1 m ( Y ^ − Y ) . X T \ frac {\ partial {j}} {\ partial {w}} = \ frac {1} {m} (\ hat {y} – y) .x ^ t ∂ W ∂ J ​ = m 1 ​ ( Y ^ − Y ) . X T

∂ J ∂ b = 1 m ∑ ∗ i = 1 m ( Y ^ ∗ 1 i − Y 1 i ) \ frac {\ partial {j}} {\ partial {b}} = \ frac {1} {m}} ^ {m} (\ hat {y} * {1i} -y_ {1i}) ∂ b ∂ J ​ = m 1 ​ ∑ ∗ i = 1 m ( Y ^ ∗ 1 i − Y 1 i ​ )

Код:

def grads(X, Y, Y_pred):
    m = Y.shape[1]
    dW = (1.0/m)*np.dot(Y_pred-Y,X.T)
    db = (1.0/m)*np.sum((Y_pred-Y),axis=1,keepdims=True)
    return dW, db

dW, db = grads(X, Y, Y_pred)

#gradient descent update
W = W -  alpha*dW
b = b - alpha*db

Вывод:

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

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

Демистификация глубокого обучения (5 частей серии)

Оригинал: “https://dev.to/mukulrathi_/linear-and-logistic-regression-54n3”