← На главную Воспоминания

Воскресенье, 10 Марта 2024

Продолжаю делать свою нейросеть. Столкнулся с тем что я не понимаю как вычислить градиент. Нашел видео Андрея Карпаты, который в подробностях обьясняет как вычеслять градиент, делая программу микроград. Вот ссылка на видео.

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

const a = 1 + 2
const b = a * 6
const c = b + 4
const L = c

const h = 0.001
const a1 = 1 + 2
const b1 = a1 * 6 + h
const c1 = b1 + 4
const L1 = c1

const derivative = (L1 - L)/h

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

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

Дальше буду продолжать смотреть видео, делая паралельно свою нейросеть