Завдання: Навчання Перцептрона
Перш ніж перейти до навчання перцептрона, слід пам'ятати, що використовується функція втрат бінарної крос-ентропії, розглянута раніше. Останнє ключове поняття перед реалізацією зворотного поширення — це формула похідної цієї функції втрат відносно вихідних активацій, an. Нижче наведено формули для функції втрат і її похідної:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−yде an=y^
Для перевірки правильності навчання перцептрона метод fit()
також виводить середнє значення втрат на кожній епосі. Воно обчислюється шляхом усереднення втрат по всіх навчальних прикладах у цій епосі:
for epoch in range(epochs):
loss = 0
for i in range(training_data.shape[0]):
loss += -(target * np.log(output) + (1 - target) * np.log(1 - output))
average_loss = loss[0, 0] / training_data.shape[0]
print(f'Loss at epoch {epoch + 1}: {average_loss:.3f}')
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))Нарешті, формули для обчислення градієнтів мають вигляд:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlЗразки навчальних даних (X_train
) разом із відповідними мітками (y_train
) зберігаються як масиви NumPy у файлі utils.py
. Крім того, там також визначені екземпляри функцій активації:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Обчисліть наступні градієнти:
dz
,d_weights
,d_biases
таda_prev
у методіbackward()
класуLayer
. - Обчисліть
output
моделі у методіfit()
класуPerceptron
. - Обчисліть
da
(dan) перед циклом, що є градієнтом функції втрат щодо вихідних активацій. - Обчисліть
da
та виконайте зворотне поширення помилки у циклі, викликаючи відповідний метод для кожного шару.
Якщо навчання реалізовано правильно, при швидкості навчання 0.01
значення втрат має стабільно зменшуватися з кожною епохою.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4
Завдання: Навчання Перцептрона
Свайпніть щоб показати меню
Перш ніж перейти до навчання перцептрона, слід пам'ятати, що використовується функція втрат бінарної крос-ентропії, розглянута раніше. Останнє ключове поняття перед реалізацією зворотного поширення — це формула похідної цієї функції втрат відносно вихідних активацій, an. Нижче наведено формули для функції втрат і її похідної:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−yде an=y^
Для перевірки правильності навчання перцептрона метод fit()
також виводить середнє значення втрат на кожній епосі. Воно обчислюється шляхом усереднення втрат по всіх навчальних прикладах у цій епосі:
for epoch in range(epochs):
loss = 0
for i in range(training_data.shape[0]):
loss += -(target * np.log(output) + (1 - target) * np.log(1 - output))
average_loss = loss[0, 0] / training_data.shape[0]
print(f'Loss at epoch {epoch + 1}: {average_loss:.3f}')
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))Нарешті, формули для обчислення градієнтів мають вигляд:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlЗразки навчальних даних (X_train
) разом із відповідними мітками (y_train
) зберігаються як масиви NumPy у файлі utils.py
. Крім того, там також визначені екземпляри функцій активації:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Обчисліть наступні градієнти:
dz
,d_weights
,d_biases
таda_prev
у методіbackward()
класуLayer
. - Обчисліть
output
моделі у методіfit()
класуPerceptron
. - Обчисліть
da
(dan) перед циклом, що є градієнтом функції втрат щодо вихідних активацій. - Обчисліть
da
та виконайте зворотне поширення помилки у циклі, викликаючи відповідний метод для кожного шару.
Якщо навчання реалізовано правильно, при швидкості навчання 0.01
значення втрат має стабільно зменшуватися з кожною епохою.
Рішення
Дякуємо за ваш відгук!
single