Спукал ли се балонът за машинно обучение или е началото на нова зора?

Наскоро пуснат статия, което показва добра тенденция в машинното обучение през последните години. Накратко: броят на стартиращите фирми за машинно обучение е намалял драстично през последните две години.

Спукал ли се балонът за машинно обучение или е началото на нова зора?
Добре. Нека да разгледаме „дали балонът се е спукал“, „как да продължим да живеем“ и да поговорим за това откъде идва това извиване на първо място.

Първо, нека поговорим за това какво е усилвателят на тази крива. Откъде се е появила тя? Сигурно ще запомнят всичко победа машинно обучение през 2012 г. на конкурса ImageNet. Все пак това е първото глобално събитие! Но в действителност това не е така. И растежът на кривата започва малко по-рано. Бих го разделил на няколко точки.

  1. През 2008 г. се появи терминът „големи данни“. Започнаха реални продукти се появи от 2010 г. Големите данни са пряко свързани с машинното обучение. Без големи данни е невъзможна стабилната работа на съществуващите по това време алгоритми. И това не са невронни мрежи. До 2012 г. невронните мрежи бяха запазена територия на маргинално малцинство. Но тогава започнаха да работят напълно различни алгоритми, които съществуваха от години или дори десетилетия: SVM(1963,1993), Случайна гора (1995), AdaBoost (2003),... Стартиращите компании от тези години се свързват предимно с автоматичната обработка на структурирани данни: касови апарати, потребители, реклама и много други.

    Производна на тази първа вълна е набор от рамки като XGBoost, CatBoost, LightGBM и др.

  2. През 2011-2012г конволюционни невронни мрежи спечели редица състезания за разпознаване на изображения. Действителното им използване беше донякъде забавено. Бих казал, че масово значими стартиращи компании и решения започнаха да се появяват през 2014 г. Отне две години, за да се разбере, че невроните все още работят, да се създадат удобни рамки, които могат да бъдат инсталирани и стартирани в разумен срок, да се разработят методи, които биха стабилизирали и ускорили времето за конвергенция.

    Конволюционните мрежи направиха възможно решаването на проблеми с компютърното зрение: класифициране на изображения и обекти в изображението, откриване на обекти, разпознаване на обекти и хора, подобряване на изображението и т.н., и т.н.

  3. 2015-2017 г. Бумът на алгоритми и проекти, базирани на повтарящи се мрежи или техни аналози (LSTM, GRU, TransformerNet и др.). Появиха се добре работещи алгоритми за реч към текст и системи за машинен превод. Те са отчасти базирани на конволюционни мрежи за извличане на основни функции. Отчасти поради факта, че се научихме да събираме наистина големи и добри набори от данни.

Спукал ли се балонът за машинно обучение или е началото на нова зора?

„Спукал ли се балонът? Прегрял ли е шумът? Умряха ли като блокчейн?“
В противен случай! Утре Siri ще спре да работи на телефона ви, а вдругиден Tesla няма да знае разликата между завой и кенгуру.

Невронните мрежи вече работят. Има ги в десетки устройства. Те наистина ви позволяват да печелите пари, да променяте пазара и света около вас. Hype изглежда малко по-различно:

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Просто невронните мрежи вече не са нещо ново. Да, много хора имат големи очаквания. Но голям брой компании са се научили да използват неврони и да правят продукти на тяхна основа. Невроните предоставят нова функционалност, позволяват ви да съкращавате работни места и да намалявате цената на услугите:

  • Производствените компании интегрират алгоритми за анализиране на дефекти на производствената линия.
  • Животновъдните ферми купуват системи за контрол на кравите.
  • Автоматични комбайни.
  • Автоматизирани центрове за обаждания.
  • Филтри в SnapChat. (е, поне нещо полезно!)

Но основното нещо, а не най-очевидното: „Няма повече нови идеи или те няма да донесат незабавен капитал.“ Невронните мрежи са решили десетки проблеми. И ще решат още повече. Всички очевидни идеи, които съществуват, породиха много стартиращи компании. Но всичко, което беше на повърхността, вече беше събрано. През последните две години не съм срещал нито една нова идея за използване на невронни мрежи. Нито един нов подход (добре, добре, има няколко проблема с GAN).

И всеки следващ старт е все по-сложен. Вече не са необходими двама момчета, които обучават неврон, използвайки отворени данни. Изисква програмисти, сървър, екип от маркери, комплексна поддръжка и т.н.

В резултат на това има по-малко стартиращи компании. Но има повече производство. Трябва да добавите разпознаване на регистрационен номер? На пазара има стотици специалисти с подходящ опит. Можете да наемете някой и след няколко месеца вашият служител ще направи системата. Или купете готови. Но да правите нов стартъп?.. Лудост!

Трябва да създадете система за проследяване на посетители - защо да плащате за куп лицензи, когато можете да направите своя собствена за 3-4 месеца, да я изострите за вашия бизнес.

Сега невронните мрежи преминават през същия път, през който са преминали десетки други технологии.

Спомняте ли си как се промени концепцията за „програмист на уеб сайт“ от 1995 г.? Пазарът все още не е наситен със специалисти. Професионалистите са много малко. Но мога да се обзаложа, че след 5-10 години няма да има голяма разлика между Java програмист и разработчик на невронни мрежи. На пазара ще има достатъчно и от двата специалиста.

Просто ще има клас проблеми, които могат да бъдат решени от неврони. Възникна задача - наемете специалист.

"Какво следва? Къде е обещаният изкуствен интелект?“

Но тук има малко, но интересно недоразумение :)

Технологичният стек, който съществува днес, очевидно няма да ни доведе до изкуствен интелект. Идеите и тяхната новост до голяма степен са се изчерпали. Нека поговорим за това какво държи сегашното ниво на развитие.

Ограничения

Да започнем със самоуправляващите се автомобили. Изглежда ясно, че е възможно да се правят напълно автономни автомобили с днешната технология. Но след колко години ще стане това не е ясно. Tesla вярва, че това ще се случи след няколко години -

Възпроизвеждане на видео

Има много други специалисти, които го оценяват на 5-10 години.

Най-вероятно, според мен, след 15 години самата инфраструктура на градовете ще се промени по такъв начин, че появата на автономни автомобили ще стане неизбежна и ще се превърне в нейно продължение. Но това не може да се счита за интелигентност. Съвременната Tesla е много сложен тръбопровод за филтриране на данни, търсене и преквалификация. Това са правила-правила-правила, събиране на данни и филтри върху тях (тук тук Написах малко повече за това или гледайте от това марки).

Първият проблем

И това е мястото, където виждаме първи основен проблем. Голяма информация. Точно това роди сегашната вълна от невронни мрежи и машинно обучение. В днешно време, за да направите нещо сложно и автоматично, ви трябват много данни. Не просто много, а много, много. Имаме нужда от автоматизирани алгоритми за тяхното събиране, маркиране и използване. Искаме да накараме колата да вижда камионите, обърнати към слънцето - първо трябва да съберем достатъчен брой от тях. Искаме колата да не полудее с велосипед, завинтен за багажника - повече проби.

Освен това един пример не е достатъчен. Стотици? Хиляди?

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Втори проблем

Втори проблем — визуализация на това, което нашата невронна мрежа е разбрала. Това е много нетривиална задача. Досега малко хора разбират как да си представят това. Тези статии са съвсем скорошни, това са само няколко примера, дори и далечни:
Визуализация мания за текстури. Показва добре върху какво невронът е склонен да се фиксира + какво възприема като изходна информация.

Спукал ли се балонът за машинно обучение или е началото на нова зора?
Визуализация Внимание при преводи. Всъщност привличането често може да се използва точно за да покаже какво е причинило такава мрежова реакция. Виждал съм такива неща както за отстраняване на грешки, така и за продуктови решения. Има много статии по тази тема. Но колкото по-сложни са данните, толкова по-трудно е да се разбере как да се постигне стабилна визуализация.

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Е, да, добрият стар набор от „виж какво има вътре в мрежата филтри" Тези снимки бяха популярни преди 3-4 години, но всички бързо разбраха, че снимките са красиви, но нямат голямо значение.

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Не споменах десетки други джаджи, методи, хакове, изследвания за това как да се покаже вътрешността на мрежата. Работят ли тези инструменти? Помагат ли ви бързо да разберете какъв е проблемът и да отстраните грешки в мрежата?.. Вземете последния процент? Е, горе-долу същото е:

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Можете да гледате всяко състезание на Kaggle. И описание на това как хората вземат окончателни решения. Подредихме 100-500-800 единици модели и се получи!

Преувеличавам разбира се. Но тези подходи не дават бързи и директни отговори.

Имайки достатъчно опит, след като сте потърсили различни опции, можете да дадете присъда защо вашата система е взела такова решение. Но ще бъде трудно да се коригира поведението на системата. Инсталирайте патерица, преместете прага, добавете набор от данни, вземете друга бекенд мрежа.

Трети проблем

Трети фундаментален проблем — мрежите учат статистика, а не логика. Статистически това лице:

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Логично, не е много подобно. Невронните мрежи не учат нищо сложно, освен ако не са принудени. Те винаги преподават възможно най-простите знаци. Имаш ли очи, нос, глава? Значи това е лицето! Или дайте пример, когато очите не означават лице. И отново - милиони примери.

Има много място в дъното

Бих казал, че именно тези три глобални проблема в момента ограничават развитието на невронните мрежи и машинното обучение. И там, където тези проблеми не го ограничават, той вече се използва активно.

Това е краят? Работят ли невронните мрежи?

неизвестен Но, разбира се, всички се надяват да не е така.

Има много подходи и насоки за решаване на основните проблеми, които подчертах по-горе. Но досега нито един от тези подходи не е позволил да се направи нещо фундаментално ново, да се реши нещо, което все още не е решено. Досега всички фундаментални проекти се правят на базата на стабилни подходи (Tesla) или остават тестови проекти на институти или корпорации (Google Brain, OpenAI).

Грубо казано, основната посока е да се създаде представяне на входните данни на високо ниво. В известен смисъл „памет“. Най-простият пример за памет са различни „вграждания“ - изображения. Е, например, всички системи за разпознаване на лица. Мрежата се научава да получава от лице някакво стабилно представяне, което не зависи от въртене, осветление или разделителна способност. По същество мрежата минимизира показателя „различните лица са далеч“ и „еднаквите лица са близо“.

Спукал ли се балонът за машинно обучение или е началото на нова зора?

За подобно обучение са необходими десетки и стотици хиляди примери. Но резултатът носи някои от рудиментите на „еднократно обучение“. Сега нямаме нужда от стотици лица, за да запомним един човек. Само едно лице и това сме всичко Нека разберем!
Има само един проблем... Мрежата може да научи само сравнително прости обекти. Когато се опитвате да различите не лица, а например „хора по дрехи“ (задача Повторна идентификация) - качеството пада с много порядъци. И мрежата вече не може да научи доста очевидни промени в ъглите.

И ученето от милиони примери също е доста забавно.

Има работа за значително намаляване на изборите. Например, веднага може да се припомни едно от първите произведения на OneShot Learning от Google:

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Има много такива произведения напр 1 или 2 или 3.

Има един минус - обикновено обучението работи добре върху някои прости, "MNIST" примери. И когато преминете към сложни задачи, имате нужда от голяма база данни, модел на обекти или някакъв вид магия.
Като цяло работата по One-Shot training е много интересна тема. Намирате много идеи. Но в по-голямата си част двата проблема, които изброих (предварително обучение върху огромен набор от данни / нестабилност върху сложни данни) силно пречат на ученето.

От друга страна, GANs - генеративни враждебни мрежи - подхождат към темата за вграждане. Вероятно сте чели куп статии на Хабре по тази тема. (1, 2,3)
Характеристика на GAN е формирането на някакво вътрешно пространство на състоянието (по същество същото вграждане), което ви позволява да рисувате изображение. Не може да бъде човек, може да бъде мерки.

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Проблемът с GAN е, че колкото по-сложен е генерираният обект, толкова по-трудно е да се опише в логиката "генератор-дискриминатор". В резултат на това единствените реални приложения на GAN, за които се чува, са DeepFake, което отново манипулира изобразяването на лицето (за което има огромна база).

Виждал съм много малко други полезни приложения. Обикновено някакъв вид трикове, включващи довършване на рисунки на картини.

И отново. Никой няма представа как това ще ни позволи да преминем към по-светло бъдеще. Представянето на логика/пространство в невронна мрежа е добро. Но се нуждаем от огромен брой примери, не разбираме как невронът представя това сам по себе си, не разбираме как да накараме неврона да запомни някаква наистина сложна идея.

Укрепване на обучението - това е подход от съвсем друга посока. Със сигурност си спомняте как Google победи всички в Go. Скорошни победи в Starcraft и Dota. Но тук всичко далеч не е толкова розово и обещаващо. Той говори най-добре за RL и неговите сложности тази статия.

За да обобщим накратко написаното от автора:

  • Готовите модели не пасват/работят зле в повечето случаи
  • Практическите проблеми се решават по-лесно по други начини. Boston Dynamics не използва RL поради неговата сложност/непредвидимост/изчислителна сложност
  • За да работи RL, имате нужда от сложна функция. Често е трудно да се създава/пише
  • Трудни за обучение модели. Трябва да отделите много време, за да напомпате и да излезете от местните оптимуми
  • В резултат на това е трудно да се повтори моделът, моделът е нестабилен при най-малките промени
  • Често преустройва някакъв вид леви модели, до генератор на произволни числа

Ключовият момент е, че RL все още не работи в производството. Google има някои експерименти ( 1, 2 ). Но не съм виждал нито една продуктова система.

памет. Недостатъкът на всичко описано по-горе е липсата на структура. Един от подходите да се опитате да подредите всичко това е да предоставите на невронната мрежа достъп до отделна памет. За да може да записва и пренаписва резултатите от своите стъпки там. Тогава невронната мрежа може да се определи от текущото състояние на паметта. Това е много подобно на класическите процесори и компютри.

Най-известният и популярен статия — от DeepMind:

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Изглежда, че това е ключът към разбирането на интелигентността? Но вероятно не. Системата все още изисква огромно количество данни за обучение. И работи главно със структурирани таблични данни. Освен това, когато Facebook реши подобен проблем, тогава те поеха по пътя „прецакай паметта, просто направи неврона по-сложен и имай повече примери – и той ще се учи сам“.

Разплитане. Друг начин за създаване на смислена памет е да вземете същите вграждания, но по време на обучението въведете допълнителни критерии, които биха ви позволили да подчертаете „смислите“ в тях. Например, искаме да обучим невронна мрежа да прави разлика между човешкото поведение в магазин. Ако следвахме стандартния път, ще трябва да направим дузина мрежи. Единият търси човек, вторият определя какво прави, третият е възрастта му, четвъртият е неговият пол. Отделната логика разглежда частта от магазина, където прави/е обучен да прави това. Третият определя траекторията му и т.н.

Или, ако имаше безкрайно количество данни, тогава би било възможно да се обучи една мрежа за всички възможни резултати (очевидно такъв масив от данни не може да бъде събран).

Подходът на разплитане ни казва - нека обучим мрежата, така че самата тя да може да прави разлика между понятията. Така че ще формира вграждане въз основа на видеото, където една област ще определи действието, една ще определи позицията на пода във времето, една ще определи височината на човека и една ще определи пола на човека. В същото време, когато тренирам, бих искал почти да не подсказвам мрежата с такива ключови концепции, а по-скоро тя да подчертава и групира области. Има доста такива статии (някои от тях 1, 2, 3) и като цяло са доста теоретични.

Но това направление, поне теоретично, би трябвало да покрива изброените в началото проблеми.

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Разлагане на изображението според параметрите „цвят на стената/цвят на пода/форма на обект/цвят на обект/и т.н.“

Спукал ли се балонът за машинно обучение или е началото на нова зора?

Декомпозиция на лице според параметрите „размер, вежди, ориентация, цвят на кожата и др.“

Друг

Има много други, не толкова глобални области, които ви позволяват по някакъв начин да намалите базата данни, да работите с по-разнородни данни и т.н.

Внимание. Вероятно няма смисъл да се отделя това като отделен метод. Просто подход, който подобрява другите. На него са посветени много статии (1,2,3). Целта на вниманието е да се подобри реакцията на мрежата конкретно към значими обекти по време на обучение. Често чрез някакво външно целево обозначение или малка външна мрежа.

3D симулация. Ако направите добър 3D двигател, често можете да покриете 90% от данните за обучение с него (дори видях пример, при който почти 99% от данните бяха покрити от добър двигател). Има много идеи и хакове как да накарате мрежа, обучена на 3D двигател, да работи с реални данни (фина настройка, прехвърляне на стил и т.н.). Но често създаването на добър двигател е няколко порядъка по-трудно от събирането на данни. Примери за правене на двигатели:
Обучение на роботи (Google, мозъчна градина)
Преподаване разпознаване стоки в магазина (но в двата проекта, които направихме, спокойно можехме и без него).
Обучение в Tesla (отново видеото по-горе).

Данни

Цялата статия е в известен смисъл изводи. Вероятно основното послание, което исках да направя, беше „безплатните неща свършиха, невроните вече не предоставят прости решения“. Сега трябва да работим усилено, за да вземем сложни решения. Или работете усилено, правейки сложни научни изследвания.

Като цяло темата е дискусионна. Може би читателите имат по-интересни примери?

Източник: www.habr.com

Купете надежден хостинг за сайтове с DDoS защита, VPS VDS сървъри 🔥 Купете надежден уеб хостинг със защита от DDoS атаки, VPS VDS сървъри | ProHoster