Чернетка

Що насправді роблять лінійні моделі: класифікація та регресія з прямою лінією

Задовго до появи нейронних мереж вченим потрібно було робити прогнози на основі даних. З огляду на набір вимірювань — вимірювання температури, астрономічні спостереження, економічні показники — вони хотіли отримати формулу, яка могла б передбачити нові значення на основі відомих. Найпростішою такою формулою є пряма:

y=mx+by = mx + b

Нахил mm, перетин bb, один вхід, один вихід. З кількома входами це стає:

y=w1x1+w2x2+⋯+wnxn+by = w_1 x_1 + w_2 x_2 + \dots + w_n x_n + b

Зважена сума вхідних даних плюс зміщення. Це рівняння в основі кожного нейрона в кожній нейронній мережі, але воно почалося як інструмент для підгонки ліній до даних.

Підгонка рядка до даних

На початку 1800-х років Гаусс і Лежандр незалежно один від одного розробили метод під назвою найменших квадратів — спосіб знайти пряму лінію, яка найкраще відповідає набору точок даних. «Найкращий» означає лінію, яка мінімізує загальний квадрат відстані між нею та кожною точкою:

MSE=1n∑i=1n(yi−y^i)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

де yiy_i — фактичне значення, а y^i=mxi+b\hat{y}_i = mx_i + b — те, що передбачає лінія. Зведення в квадрат робить усі помилки позитивними та штрафує великі помилки більше, ніж маленькі. Це середня квадратична помилка — та сама функція втрат, яка сьогодні використовується для навчання нейронних мереж завданням регресії.

Краса методу найменших квадратів полягає в тому, що він має розв’язок у закритій формі. Вам не потрібно шукати чи повторювати — ви підключаєте дані до формули та отримуєте точні оптимальні mm та bb:

m=n∑xiyi−∑xi∑yin∑xi2−(∑xi)2,b=∑yi−m∑xinm = \frac{n \sum x_i y_i - \sum x_i \sum y_i}{n \sum x_i^2 - (\sum x_i)^2}, \quad b = \frac{\sum y_i - m \sum x_i}{n}

Один розрахунок, точна відповідь. Це зробило лінійну регресію практичною задовго до появи комп’ютерів — вчені могли обчислювати її вручну.

Спробуйте самі. Перетягніть повзунки, щоб позиціонувати лінію вручну — червоні пунктирні лінії показують помилку в кожній точці. Потім натисніть Припасувати, щоб перейти до точного рішення за методом найменших квадратів, або Градієнтний спуск, щоб спостерігати, як ітеративний алгоритм крок за кроком знаходить ту саму відповідь:

Linear regressionMSE: —
0.00
0.0

Кнопка Fit використовує формулу закритої форми — миттєво. Градієнтний спуск обчислює ∂MSE∂m\frac{\partial \text{MSE}}{\partial m} і ∂MSE∂b\frac{\partial \text{MSE}}{\partial b} і поступово змінює параметри. Обидва приземляються на одній лінії. Градієнтний спуск повільніший для цього простого випадку, але він узагальнюється для моделей, де не існує замкнутого рішення — якою є кожна нейронна мережа. Це той самий алгоритм, який детально описано в стаття зворотного поширення.

Лінійна регресія була робочою конячкою науки та економіки протягом двох століть. Він швидкий, стабільний, інтерпретований — ви можете подивитися на нахил і одразу зрозуміти, наскільки змінюється yy, коли xx збільшується. І це напрочуд сильно: навіть складні зв’язки часто поводяться приблизно лінійно в малих діапазонах.

Те саме рівняння, інша робота

Регресія та класифікація виглядають по-різному, але модель ідентична — помножте вхідні дані на ваги, додайте зсув, отримайте число. Різниця в тому, що ви робите з цим числом:

  • Регресія: використовуйте безпосередньо — y^=mx+b\hat{y} = mx + b. Лінійна функція робить прогноз.
  • Класифікація: порогове значення — z≥0z \geq 0? Лінійна функція малює межу.

Рівняння w1x1+w2x2+b=0w_1 x_1 + w_2 x_2 + b = 0 визначає лінію в 2D просторі — межу прийняття рішення. Все з одного боку належить до одного класу, все з іншого – до іншого. Модель все ще є зваженою сумою; поріг перетворює це одне число на рішення.

Першою машиною, яка вивчала власну межу прийняття рішень на прикладах — замість того, щоб людина обчислювала ваги — був персептрон Розенблата в 1958 році, а за ним ADALINE Уідроу та Хоффа в 1960 році. Обидва використовували лінійне рівняння, наведене вище; вони відрізнялися лише втратою, проти якої тренувалися. Віджет нижче показує, як учень у стилі персептрона знаходить межу одне виправлення за раз. Спостерігайте, як жовта лінія обертається та зміщується, поки не розділить два класи:

Perceptron classificationaccuracy: —
step 0

Точне правило навчання, яке використовує віджет, чому він працює та чому пізніші вдосконалення ADALINE важливіші, ніж версія перцептрона, описано в Стаття ADALINE — включаючи фізичну машину з 16 ручками, яку можна навчити вручну. Для наших цілей тут суть лише в тому, що те саме лінійне рівняння гарантує і регресію, і класифікацію; змінюються лише втрати та постобробка.

Ця подвійність зберігається в сучасних нейронних мережах. Стаття МНІСТ використовує щільні шари для класифікації (м’який максимальний вихід, перехресна втрата ентропії). стаття зворотного поширення використовує ті самі шари для регресії (лінійний вихід, втрати MSE). Шари не знають і не турбуються, яке завдання вони виконують — вони просто обчислюють зважені суми та пропускають градієнти.

Стіна

Ажіотаж тривав близько десяти років. У 1969 році Марвін Мінскі та Сеймур Пейперт опублікували Персептрони, книгу, яка довела жорстку математичну межу: існують прості моделі, які одна лінійна модель не може вивчити.

Найвідомішим прикладом є XOR — функція, яка виводить 1, коли один із двох вхідних даних дорівнює 1:

x1x_1x2x_2XOR
000
011
101
110

Нанесіть ці чотири точки та спробуйте провести одну пряму лінію, що відокремлює одиниці від нулів. Не можна — класи чергуються по діагоналі. Жодні значення w1w_1, w2w_2 і bb ніколи не зроблять w1x1+w2x2+bw_1 x_1 + w_2 x_2 + b позитивним для (0,1)(0,1) і (1,0)(1,0), але негативним для (0,0)(0,0) і (1,1)(1,1). Дані не є лінійно роздільними, тому гарантія конвергенції персептрона не застосовується. Він буде підстрибувати вічно і ніколи не осяде.

XOR є прикладом іграшки, але обмеження є загальним. Будь-який шаблон, який потребує кривої, вигину або взаємодії між змінними, недоступний. Клацніть вкладки нижче — кожна показує найкращий рядок для різних типів даних:

When linear models fail

Лінійна вкладка підходить ідеально. Наступні три ні — лінія систематично пропускає шаблон. Це недостатньо: модель надто проста для даних, і ніяке навчання її не виправить.

Недостатнє оснащення – це лише половина справи. Протилежна помилка виявляється, коли ви надаєте моделі занадто багато гнучкості. Перейдіть на вкладку overfit: дані, по суті, являють собою шумну пряму лінію — такої ж форми, як і перша вкладка, — але тепер вони підбираються гнучким поліномом ступеня 9 замість лінії. Крива скручується, проходячи майже через кожну точку, зводячи похибку навчання майже до нуля. Це виглядає як тріумф, поки ви не пам’ятаєте, що ворушіння відстежують шум, а не сигнал: додайте цю криву до нової точки, проведеної з тієї самої лінії, і вона сильно промахнеться. Пряма лінія ігнорує шум і узагальнює; закорючка запам’ятовує це і ні. Робота полягає в тому, щоб приземлитися між двома крайнощами — надто жорстким з одного боку, надто гнучким з іншого — що є компромісом зміщення–дисперсії, який набір інструментів регуляризації повністю враховує з кривою ризику Золотовласки, яка робить баланс точним.

Доказ Мінські та Пеперта був нищівним. Фінансування досліджень припинилося, і галузь увійшла в те, що зараз називається зимою штучного інтелекту — довгий період, коли мало людей працювало над навчальними машинами. Лінійна модель була правильною щодо основної ідеї (машини навчаються на даних), але вона застрягла за жорсткою математичною стелею.

Повз стіну, одним абзацом

Накопичування лінійних шарів не допомагає — два лінійних перетворення, W2(W1x+b1)+b2W_2(W_1 x + b_1) + b_2, алгебраїчно згортаються в єдине лінійне перетворення (W2W1)x+…(W_2 W_1) x + \dots. Десять шарів згортаються в один. Вихід полягає в тому, щоб розмістити нелінійну функцію активації між шарами — ReLU, sigmoid, tanh — таким чином наступний рівень рекомбінує вигнуті версії виходів попереднього шару, а не необроблені лінійні проекції. При активаціях між шарами композиція більше не згортається, і стеки цих шарів можуть апроксимувати будь-яку функцію (універсальна теорема про наближення). Лінійна модель – це не сходинка, яку ви залишаєте позаду, це цеглинка, з якої будується кожна сучасна мережа.

Історичний відхід від «однолінійної моделі» до «складених шарів із нелінійністю» є окремою історією: перша спроба Уідроу та Гоффа створити багатошарові мережі в 1962 році (MADALINE), незграбна евристика, яку вони використали для її навчання (ще немає правила ланцюга для крокових функцій), і стаття Румельхарта, Гінтона та Вільямса про зворотне поширення в 1986 році, яка нарешті створила глибокі мережі. піддається дресируванню. Стаття ADALINE проходить крізь машину, яка першою потрапила в цю стіну, і що з’явилося після неї; стаття зворотного поширення охоплює сучасну роздільну здатність.

Перегляд зображення

Змінюйте масштаб жестом щипка або клавішами + / −. Переміщуйте зображення перетягуванням або стрілками. Esc — закрити.