Искате ли да знаете как работи дълбокото обучение? Ето кратко ръководство за всички.

Изкуственият интелект (AI) и машинното обучение (ML) са едни от най-актуалните теми в момента.

Терминът „AI“ се разхвърля небрежно всеки ден. Чувате амбициозни разработчици да казват, че искат да научат AI. Също така чувате ръководители да казват, че искат да внедрят AI в своите услуги. Но доста често много от тези хора не разбират какво е AI.

След като прочетете тази статия, ще разберете основите на AI и ML. По-важното е, че ще разберете как работи Deep Learning, най-популярният тип ML.

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

Заден план

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

Изкуствен интелект срещу машинно обучение

Изкуственият интелект е възпроизвеждане на човешкия интелект в компютрите.

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

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

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

ML позволява на компютрите да се учат сами. Този тип обучение се възползва от процесорната мощ на съвременните компютри, които могат лесно да обработват големи масиви от данни.

Учене под наблюдение срещу учене без надзор

Ученото под наблюдение включва използване на етикетирани набори от данни, които имат входни и очаквани резултати.

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

Ако изходът, генериран от AI, е грешен, той ще коригира изчисленията си. Този процес се извършва итеративно върху набора от данни, докато AI не прави повече грешки.

Пример за контролирано обучение е AI за прогнозиране на времето. Той се научава да предсказва времето, използвайки исторически данни. Тези данни за обучение имат входове (налягане, влажност, скорост на вятъра) и изходи (температура).

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

Когато обучавате AI, използвайки обучение без надзор, вие оставяте AI да прави логически класификации на данните.

Пример за учене без надзор е AI за предсказване на поведението за уебсайт за електронна търговия. Той няма да се научи, като използва етикетиран набор от данни за входове и изходи.

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

Сега как работи дълбокото обучение?

Вече сте готови да разберете какво представлява Дълбокото обучение и как работи.

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

Ще научим как работи задълбоченото обучение чрез изграждане на хипотетична услуга за оценка на цената на самолетни билети . Ще го обучаваме, като използваме метод за учене под наблюдение.

Искаме нашият оценител на цената на самолетния билет да предскаже цената, като използва следните данни (изключваме двупосочните билети за простота):

  • Летище Origin
  • Дестинация летище
  • Дата на заминаване
  • Авиокомпания

Невронни мрежи

Нека да погледнем вътре в мозъка на нашия ИИ.

Подобно на животните, мозъкът на нашия оценител AI има неврони. Те са представени от кръгове. Тези неврони са взаимосвързани.

Невроните са групирани в три различни типа слоеве:

  1. Входен слой
  2. Скрити слоеве
  3. Изходен слой

В вход слой получава входни данни. В нашия случай имаме четири неврони във входния слой: Летище на произход, Летище на местоназначение, Дата на заминаване и Авиокомпания. Входният слой предава входовете към първия скрит слой.

На скрити слоеве изпълняват математически изчисления на нашите входове. Едно от предизвикателствата при създаването на невронни мрежи е определянето на броя на скритите слоеве, както и броя на невроните за всеки слой.

Дълбокото “ в дълбокото обучение се отнася до наличието на повече от един скрит слой.

На изход слой се връща на изходни данни. В нашия случай ни дава прогноза за цената.

И така, как се изчислява прогнозата на цената?

Тук започва магията на Дълбокото обучение .

Всяка връзка между невроните е свързана с тегло . Това тегло диктува важността на входната стойност. Първоначалните тегла се задават произволно.

Когато се прогнозира цената на самолетен билет, датата на заминаване е един от по-тежките фактори. Следователно връзките на невроните с дата на заминаване ще имат голямо тегло.

Всеки неврон има функция за активиране. Тези функции са трудни за разбиране без математически разсъждения.

Най-просто казано, една от целите му е да „стандартизира“ изхода от неврона.

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

Нищо сложно, нали?

Обучение на невронната мрежа

Обучението на AI е най-трудната част от Deep Learning. Защо?

  1. Нуждаете се от голям набор от данни .
  2. Нуждаете се от голямо количество изчислителна мощност .

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

За да обучим AI, трябва да му дадем входовете от нашия набор от данни и да сравним изходите му с изходите от набора от данни. Тъй като AI все още не е обучен, изходите му ще бъдат грешни.

След като преминем през целия набор от данни, можем да създадем функция, която да ни показва колко грешни са били изводите на AI от реалните изходи. Тази функция се нарича функция на разходите.

В идеалния случай искаме нашата функция на разходите да бъде нула. Тогава изходите на нашия AI са същите като изходите на набора от данни.

Как можем да намалим функцията на разходите?

Променяме тежестите между невроните. Бихме могли да ги променим на случаен принцип, докато функцията ни за разходи е ниска, но това не е много ефективно.

Вместо това ще използваме техника, наречена Gradient Descent.

Gradient Descent е техника, която ни позволява да намерим минимума на дадена функция. В нашия случай търсим минимума от функцията за разходи.

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

За да минимизирате функцията на разходите, трябва многократно да прегледате набора от данни. Ето защо се нуждаете от голямо количество изчислителна мощност.

Актуализирането на тежестите с помощта на градиентно спускане се извършва автоматично . Това е магията на дълбокото обучение!

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

Къде мога да науча повече?

Има много други видове невронни мрежи: Конволюционни невронни мрежи за компютърно зрение и повтарящи се невронни мрежи за обработка на естествен език.

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

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

Ако имате някакви въпроси или искате повече технически обяснения на понятията, моля попитайте по-долу!

В обобщение…

  • Deep Learning използва невронна мрежа, за да имитира интелигентността на животните.
  • Има три типа слоеве неврони в невронната мрежа: ВходътСлой, скритият слой (слоевете) и изходният слой.
  • Връзките между невроните са свързани с тегло, което диктува важността на входната стойност.
  • Невроните прилагат активираща функция върху данните, за да „стандартизират“ изхода, излизащ от неврона.
  • За да тренирате невронна мрежа, ви е необходим голям набор от данни.
  • Итерацията през набора от данни и сравняването на изходите ще доведе до функция на разходите, показваща колко AI е изключен от реалните изходи.
  • След всяка итерация през набора от данни, теглата между невроните се коригират с помощта на Gradient Descent за намаляване на разходната функция.

Ако харесате тази статия, моля, дайте ми няколко пляскания, за да я видят повече хора. Благодаря!

Можете също така да проверите моя опит за това как получих стажа си в Shopify!

За повече актуализации, последвайте ме в Twitter.