Чудово!
Completion показник покращився до 4single
Завдання: Навчання Перцептрона
Свайпніть щоб показати меню
Перш ніж перейти до навчання перцептрона, зверніть увагу, що використовується функція втрат бінарної крос-ентропії, яку було розглянуто раніше. Останнє ключове поняття перед реалізацією зворотного поширення — це формула похідної цієї функції втрат відносно вихідних активацій, 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
Ваша мета — завершити процес навчання багатошарового перцептрона, реалізувавши зворотне поширення помилки та оновлення параметрів моделі.
Дотримуйтесь наступних кроків:
- Реалізуйте метод
backward()у класіLayer:
- Обчисліть наступні градієнти:
dz: похідна функції втрат за препроактиваційними значеннями, використовуючи похідну функції активації;d_weights: градієнт функції втрат за вагами, обчислений як добутокdzі транспонованого вхідного вектора;d_biases: градієнт функції втрат за зсувами, дорівнюєdz;da_prev: градієнт функції втрат за активаціями попереднього шару, отриманий множенням транспонованої матриці ваг наdz.- Оновіть ваги та зсуви, використовуючи швидкість навчання.
- Завершіть метод
fit()у класіPerceptron:
- Обчисліть вихід моделі, викликавши метод
forward();- Обчисліть втрати за формулою крос-ентропії;
- Обчисліть dan — похідну функції втрат за вихідними активаціями;
- Пройдіть у зворотному порядку по шарах, виконуючи зворотне поширення помилки, викликаючи метод
backward()кожного шару.
- Перевірте процес навчання:
- Якщо все реалізовано правильно, значення втрат має стабільно зменшуватися з кожною епохою при швидкості навчання
0.01.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат