5) Как обучить модель машинного обучения. 4 шага для начинающих в плане обучения
Обучение Модели не так просто, как выглядит. Модель помогает нам предсказать некоторый результат (y). В настоящее время у нас есть много библиотек или фреймворков, которые упрощают наш код, мы можем решить очень сложную проблему, вызвав только простую функцию. Но в бэкенде огромное количество кода. Сегодня в этой статье мы углубимся в модель, что сделает наше понимание более ясным. В простейшей модели есть 4 шага обучения
- Найдите результат, используя функцию f(x)
- найти потери (ошибка одной точки данных) и стоимость (ошибка полного набора данных)
- Примените Gradient Decent (или любой другой алгоритм оптимизации), чтобы получить правильные веса и минимизировать потери.
- Снова вычислите f (x) и повторите шаги до завершения итераций (эпох).
Так работает каждая модель. Это простые шаги, которым следует каждая модель, а остальные вещи будут зависеть от выбора в соответствии с проблемой, например, применение функций активации и т. д.
Выбор функции потерь:
Выбор функции потерь также зависит от проблемы. Например, если вы решаете такую задачу, как бинарная классификация, то функция потерь BinaryCrossentropy() будет предпочтительнее, а если вы решаете задачу для прогнозирования чисел вместо категорий, тогда вы можете используйте функцию потерь MeanSquaredError(). У нас также есть другие функции потерь, но эти функции потерь являются основным типом в нейронной сети.
Формулы:
У нас также есть хорошая новость: если вы используете любую библиотеку или фреймворк, например tensor flow, вам не нужно писать код с нуля. Тензорный поток имеет встроенные функции, которые сделают это за вас в одной строке кода.
#to use Mean square error from tensorflow.keras.losses import MeanSquaredError # to use binary cross entropy from tensorflow.keras.losses import BinaryCrossentropyOptimization Algorithm
Алгоритм оптимизации:
Алгоритм оптимизации помогает нам уменьшить потери и повысить точность модели. В большинстве случаев в модели обучения мы используем градиентный спуск в качестве алгоритма оптимизации. Здесь Gradient Decent использует обратное распространение (это также огромная тема, которую мы обсудим в любой другой статье) для прогнозирования правильных весов в соответствии с выходными данными. Давайте увеличим глубину градиента прилично. Мы обеспечиваем приличную скорость обучения для градиента, что помогает получить для него прыжок. Я расскажу о градиенте в любой другой статье с обратным распространением, а пока, как новичку, этого достаточно, чтобы наши концепции оставались ясными. В тензорном потоке мы используем функцию подгонки, чтобы получить правильные веса для модели.
#to use Gradient Decent with learning rate of 0.1 tf.keras.optimizers.SGD(learning_rate=0.1) #alternative of gradient decent (passing parameter like below will be same as learning_rate=0.001) optimizer=tf.keras.optimizers.Adam(0.001) #here epochs are the number of iterations to get right weight. model.fit(x,y,epochs=100)
Функция активации
Выбор функции также зависит от проблемы. Существует несколько функций активации, но наиболее часто используемыми функциями потерь являются 3, такие как сигмоид, relu и SoftMax. Использование их указано ниже
- Если вы работаете с задачей бинарной классификации, то функция сигмовидная активация будет предпочтительнее.
- если вы используете задачу регрессии, вы можете использовать линейную функцию активации. (Здесь мы не используем никакую функцию активации, поэтому используем только формулу модели и этого достаточно).
- Если нам нужны положительные значения, мы используем функцию активации Relu. Мы используем это в скрытых слоях большую часть времени. Это помогает модели обучаться быстрее, чем сигмоида, с использованием скрытых слоев.
- Функция активации SoftMax является расширением сигмоида, если у вас есть проблема с множественной классификацией, тогда SoftMax будет предпочтительнее.
Некоторые функции активации:
Вы также можете исследовать дополнительные функции активации. На данный момент этого достаточно, и в следующих статьях мы поймем еще кое-что новое.