Hacker News Digest

Тег: #backpropagation

Постов: 4

Backpropagation is a leaky abstraction (2016) (karpathy.medium.com) 🔥 Горячее

Карпати утверждает, что понимание обратного распространения ошибки (backprop) критически важно, несмотря на автоматизацию в фреймворках вроде TensorFlow. Он называет backprop "утечкой абстракции" — опасно верить, что просто соединяя слои, можно "магически" обучить сеть. Студенты курса CS231n жаловались на ручную реализацию backprop в numpy, но Карпати настаивает: без понимания математики невозможно диагностировать проблемы обучения.

Яркий пример — сигмоидные функции. При плохой инициализации весов сигмоиды "насыщаются" (выходы близки к 0 или 1), делая локальный градиент z*(1-z) равным нулю. Это полностью останавливает обучение. Даже при нормальных условиях градиент сигмоиды не превышает 0.25 (при z=0.5), что означает его 4-кратное ослабление при каждом проходе. Для сетей с сигмоидами нижние слои учатся значительно медленнее верхних.

by swatson741 • 02 ноября 2025 г. в 05:20 • 321 points

ОригиналHN

#backpropagation#tensorflow#numpy#sigmoid#machine-learning#medium

Комментарии (131)

  • Обсуждение вращается вокруг статьи Карпати "Yes, you should understand backprop" и его тезиса о том, что понимание backprop важно, даже если вы никогда не будете писать его вручную.
  • Участники спора сомневаются в ценности этого подхода, указывая на то, что современные фреймворки и высокоуровневые абстракции делают знание деталей неактуальным.
  • Некоторые участники подчеркивают, что даже если вы не будете реализовывать backprop вручную, понимание принципов работы оптимизаторов и функций активации важно для отладки и проектирования моделей.
  • Обсуждение также затрагивает вопрос о том, насколько важно понимать детали, когда вы пользуетесь высокоуровневыми инструментами, и какие уровни абстракции считаются приемлемыми.
  • В конце концов, спор сводится к тому, что хотя фундаментальное понимание важно, но не стоит забывать, что большинство практических задач будут решаться с помощью высокоуровневых инструментов и фреймворков.

RustGPT: A pure-Rust transformer LLM built from scratch (github.com) 🔥 Горячее 💬 Длинная дискуссия

RustGPT

Трансформерная языковая модель, полностью написанная на Rust.

by amazonhut • 15 сентября 2025 г. в 09:47 • 357 points

ОригиналHN

#rust#transformers#machine-learning#ndarray#rand#cargo#gpu#backpropagation#github#llm

Комментарии (170)

  • Проект представляет собой реализацию LLM (языковой модели) на Rust "с нуля" как учебный эксперимент для понимания принципов работы.
  • Отмечается читаемость и лаконичность кода по сравнению с большими фреймворками вроде PyTorch/TensorFlow.
  • Обсуждаются технические детали реализации: использование констант из lib.rs, структура трансформерных блоков, применение крейтов ndarray, rand.
  • Поднимаются вопросы о данных для обучения: источник, объём (в проекте используется небольшой встроенный набор), возможности для непрерывного обучения.
  • Упоминаются проблемы и сложности: отладка backpropagation, отсутствие GPU-ускорения, потенциальная неэффективность реализации.
  • Высказываются мнения о экосистеме: преимущества cargo над "dependency hell" в Python, но и риски лёгкого включения зависимостей.
  • Обсуждаются возможные улучшения: добавление численного тестирования градиентов, лицензии, GPU-акселерация, бенчмарки.
  • Проект сравнивают с другими аналогичными реализациями на Rust и Zig, а также с кодом, сгенерированным ИИ.
  • Отмечается впечатляющая скорость генерации первого токена и простота запуска (cargo run).

The maths you need to start understanding LLMs (gilesthomas.com) 🔥 Горячее

  • Векторы и матрицы: LLM всё превращают в вектора; главное — скалярное произведение и умножение матриц.
  • Softmax: превращает логиты в вероятности; температура регулирует «уверенность».
  • Градиент и производная: показывают, как чуть изменить вес, чтобы ошибка уменьшилась.
  • Цепное правило: позволяет распространить ошибку через слои; сердце backprop.
  • Эмбеддинги: строки → векторы; чем ближе векторы, тем похожее значение.
  • Attention: Q·K^T выделяет релевантные токены; V несёт смысл; маска прячет будущее.
  • MLP в трансформере: два линейных слоя с ReLU; увеличивает выразительность.
  • LayerNorm: стабилизирует распределение после каждого подслоя.
  • Позиционное кодирование: добавляет «адрес» токену, иначе порядок теряется.
  • Лосс (cross-entropy): средняя «удивлённость»; оптимизатор (Adam) крутит веса.

Дальше — только масштаб: больше слоёв, голов, данных и видеокарт.

by gpjt • 02 сентября 2025 г. в 23:10 • 526 points

ОригиналHN

#machine-learning#deep-learning#transformers#tensors#linear-algebra#pytorch#backpropagation#attention-mechanism#natural-language-processing#llm

Комментарии (106)

  • Физики и математики вспомнили, что знание тензорного исчисления, линалгебры и энтропии пригодилось для понимания backprop и LLM.
  • Практика: «смотреть» Karpathy недостаточно — нужно кодить за ним; его курс даёт базы и уверенность копать дальше.
  • Книга «Build a Large Language Model (from Scratch)» идёт шаг-за-шагом, но объясняет только вычисления, а не «почему это вообще работает»; explainability всё ещё исследуется.
  • Путаница: эмбеддинги ≠ вся модель; они лишь вход для трансформера, внутри которого 1,8 трлн параметров и «чёрный ящик».
  • LLM — логит-генераторы с неизбежной неопределённостью; цепочки моделей накапливают ошибку и быстро «ломаются» без человека-оркестратора.
  • Для 99 % разработчиков хватает линалгебры, softmax, градиентов и PyTorch; остальное — инженерия данных, трюки и эксперименты.

Who Invented Backpropagation? (people.idsia.ch)

Кто изобрел обратное распространение ошибки (backpropagation)

Современный backpropagation (BP) впервые опубликовал в 1970 г. финский магистрант Сеппо Линнайнмаа [BP1][R7]; 2020 г. отмечали 50-летие метода. Предшественник — работа Келли 1960 г. [BPA].

BP — это обратный режим автоматического дифференцирования: стоимость вычисления градиента примерно равна стоимости прямого прохода. Линнайнмаа дал алгоритм для произвольных разреженных сетей и привёл код на FORTRAN; все современные фреймворки (TensorFlow и др.) опираются на его метод.

В 1960-е уже применяли цепное правило Лейбница для градиентного спуска в многослойных системах (Келли, Брайсон, Дрейфус и др.), но без учёта эффективности для разреженных сетей.

Первое применение BP к обучению весов нейросетей — Дрейфус 1973 г.; первое NN-специфическое описание — Вербос 1982 г. [BP2] (в диссертации 1974 г. его ещё нет).

Уже в 1967 г. Амари с учеником Сайто обучал пятислойный перцептрон SGD, получая внутренние представления; это было глубокое обучение задолго до 1980-х. Параллельно Ивахненко строил глубокие сети GMDH (с 1965 г.).

К 1985 г. вычисления подешевели в 1000 раз; Румелхарт и др. показали, что BP формирует полезные скрытые представления.

by nothrowaways • 18 августа 2025 г. в 15:50 • 161 points

ОригиналHN

#backpropagation#fortran#tensorflow#neural-networks#automatic-differentiation#gradient-descent#deep-learning#machine-learning

Комментарии (86)

  • Суть спора: кто «изобрёл» backpropagation — Хинтон/Румелхарт (1980-е) или она была раньше в теории управления и автоматическом дифференцировании (1960-е, Kelley, Amari и др.).
  • Большинство участников считают, что это лишь эффективное применение цепного правила, которое переоткрывалось множество раз.
  • Юрген Шмидхубер подаётся как главный «скептик», обвиняющий академическое сообщество в игнорировании более ранних работ.
  • Некоторые подчеркивают, что решающим стало не само «изобретение», а переход к GPU и масштабируемым фреймворкам в 2010-х.