1. ПрограмиранеГолеми данниData ScienceData Научно програмиране All-in-One за манекени Cheat Sheet
Понятие код за програмиране на науката за данни
  1. ПрограмиранеГолеми данниData ScienceMachine Learning vs. Deep Learning: Обясняване на дълбоките разлики в обучението от други форми на AI

От Джон Пол Мюлер, Лука Мюлер

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

Дълбокото обучение не е просто ребрандиране на стара технология, персептрон, открита през 1957 г. от Франк Розенблат в аеронавигационната лаборатория Корнел. Дълбокото обучение работи по-добре поради допълнителната изтънченост, която добавя чрез пълноценното използване на мощни компютри и наличието на по-добри (не само повече) данни. Дълбокото обучение също предполага дълбока качествена промяна в възможностите, предлагани от технологията, заедно с нови и удивителни приложения. Наличието на тези възможности модернизира стари, но добри невронни мрежи, превръщайки ги в нещо ново. Следващата статия описва как дълбокото обучение постига своята задача.

Добавяне на още слоеве за задълбочено обучение

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

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

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

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

Едно от най-ранните постижения на задълбоченото учене, което накара обществеността да осъзнае потенциала си, е котешкият неврон. Екипът на Google Brain, управляван по това време от Andrew Ng и Jeff Dean, събра 16 000 компютъра, за да изчисли мрежа за дълбоко обучение с повече от милиард тежести, като по този начин даде възможност да се обучава без надзор от видеоклипове в YouTube. Компютърната мрежа дори може да определи сама, без каквато и да е човешка намеса, каква е котка и учените от Google успяха да изкопаят от мрежата представяне за това как трябва да изглежда самата мрежа (вижте статията за Wired, обсъждаща невронните мрежи) ,

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

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

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

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

Професор Хинтън и неговият екип също са запомнящи се за това, че са сред първите, които тестват използването на GPU, за да ускорят обучението на дълбока невронна мрежа. През 2012 г. те спечелиха открит конкурс, организиран от фармацевтичната компания Merck и Kaggle (последният уебсайт за състезания за наука за данни), използвайки най-новите си открития в дълбочина. Това събитие привлече голямо внимание към тяхната работа. Можете да прочетете всички подробности за революционното постижение на екипа на Hinton с невронни мрежови слоеве от това интервю за Джефри Хинтън.

Промяна на активациите за задълбочено обучение

Екипът на Джефри Хинтън успя да добави още слоеве към невронна архитектура поради две решения, които предотвратиха проблеми с обратното разпространение:

  • Те предотвратиха проблема с експлодиращите градиенти, като използват по-интелигентната мрежа за инициализация. Избухващ градиент се различава от изчезващ градиент, защото може да накара мрежата да се взриви, тъй като взривяващият се градиент става твърде голям, за да се справи. Мрежата ви може да експлодира, освен ако правилно не инициализирате мрежата, за да не й позволите да изчисли големи теглото. Тогава решавате проблема с изчезващите градиенти, като променяте мрежовите активации. Екипът разбра, че преминаването на сигнал през различни слоеве за активиране има тенденция да овлажнява сигнала за обратно разпространение, докато не стане твърде слаб, за да премине вече, след като проучи как работи сигмоидното активиране. Те използваха ново активиране като решение за този проблем. Изборът кой алгоритъм да се използва падна към стар тип активиране на ReLU, който означава преправени линейни единици. Активирането на ReLU спря приетия сигнал, ако беше под нулата, като осигури нелинейността, характерна за невронните мрежи, и остави сигнала да премине така, както беше, ако е над нулата. (Използването на този тип активиране е пример за комбиниране на стара, но все пак добра технология с текущата технология.) Изображението по-долу показва как работи този процес.
Функция за активиране на ReLU при задълбочено обучение

ReLU работи невероятно добре и оставя сигнала за обратно разпространение да пристигне до първоначалните дълбоки мрежови слоеве. Когато сигналът е положителен, неговата производна е 1. Можете също така да намерите доказателство за производната ReLU в търсенето. Обърнете внимание, че скоростта на промяна е постоянна и еквивалентна на единица, когато входният сигнал е положителен (докато, когато сигналът е отрицателен, производната е 0, като по този начин предотвратява преминаването на сигнала).

Можете да изчислите функцията ReLU, като използвате f (x) = max (0, x). Използването на този алгоритъм увеличи скоростта на тренировка много, което позволява бързото трениране на още по-дълбоки мрежи, без да се появят мъртви неврони. Мъртъв неврон е този, който мрежата не може да активира, защото сигналите са твърде слаби.

Добавяне на регуларизация чрез отпадане за задълбочено обучение

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

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

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

дълбоко отпадане от обучението

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

  1. ПрограмиранеГолеми данниData ScienceИзползване на AI за анализ на чувството

От Джон Пол Мюлер, Лука Мюлер

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

Анализ на настроенията на AI

Предстоящият пример е тестов старт на RNN с помощта на Keras и TensorFlow, който изгражда алгоритъм за анализ на настроенията, способен да класифицира нагласите, изразени в преглед на филма. Данните са извадка от базата данни на IMDb, която съдържа 50 000 прегледа (разделени наполовина между влакове и тестови групи) на филми, придружени от етикет, изразяващ настроението на прегледа (0 = отрицателен, 1 = положителен). IMDb е голяма онлайн база данни, съдържаща информация за филми, телевизионни сериали и видео игри. Първоначално поддържан от фен база, сега се управлява от филиал на Amazon. В IMDb хората намират нужната им информация за любимото си шоу, както и публикуват коментарите си или пишат отзив, за да ги прочетат други посетители.

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

Като начален код, кодът импортира imdb функцията от Keras и я използва за извличане на данните от интернет (около 17.5MB изтегляне). Параметрите, които примерът използва, обхващат само първите 10 000 думи и Керас трябва да разбърква данните, като използва конкретно произволно семе. (Познаването на семената прави възможно възпроизвеждането на разбъркването според нуждите.) Функцията връща два влака и тестови групи, съставени от текстови последователности и резултат от настроението.

от keras.datasets import imdb
top_words = 10000
((x_train, y_train),
(x_test, y_test)) = imdb.load_data (num_words = top_words,
семена = 21)

След завършване на предишния код можете да проверите броя на примерите, като използвате следния код:

print ("Примери за обучение:% i"% len (x_train))
print ("Тестови примери:% i"% len (x_test))

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

импортиране numpy като np
печат (np.unique (y_train, return_counts = Вярно))

Резултатът, масив ([12500, 12500]), потвърждава, че наборът от данни е разделен равномерно между положителни и отрицателни резултати. Такъв баланс между класовете за отговор е изключително поради демонстративния характер на набора от данни. В реалния свят рядко намирате балансирани набори от данни. Следващата стъпка създава някои Python речници, които могат да конвертират между кода, използван в набора от данни, и реалните думи. Всъщност наборът от данни, използван в този пример, е предварително обработен и предоставя последователности от числа, представляващи думите, а не самите думи. (Алгоритмите LSTM и GRU, които намерите в Керас, очакват последователности от числа като числа.)

word_to_id = {w: i ​​+ 3 за w, i в imdb.get_word_index (). items ()}
id_to_word = {0: '', 1 '', 2 '}
id_to_word.update ({i + 3: w за w, i в imdb.get_word_index (). items ()})
def convert_to_text (последователност):
връщане '' .join ([id_to_word [s] за s последователно, ако s> = 3])
отпечатване (convert_to_text (x_train [8]))

Предишният фрагмент на кода определя два речника за преобразуване (от думи към цифрови кодове и обратно) и функция, която превежда примерите на набора от данни в четим текст. Като пример, кодът отпечатва деветия пример: „този филм беше като лоша развалина на влака, толкова ужасна, колкото беше…“. От този откъс можете лесно да предположите, че настроенията към този филм не са положителни. Думи като лоша, развалина и ужасно предават силно негативно чувство и това прави лесно да отгатнеш правилните настроения.

В този пример получавате числовите последователности и ги превръщате обратно в думи, но обратното е често срещано. Обикновено получавате фрази, съставени от думи и ги превръщате в последователности от цели числа, които да се подават към слой от RNN. Keras предлага специализирана функция, Tokenizer, която може да направи това за вас. Той използва методите fit_on_text, за да научи как да преобразува думите в цели числа от данните за обучение и текстовете_то_матрица, за да трансформира текст в последователност.

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

Обикновено вземате начална част от текста и го използвате като представител на целия преглед. Понякога се нуждаете само от няколко първоначални думи - например първите 50 думи - за да придобиете смисъл; понякога се нуждаете от повече. Особено дългите текстове не разкриват ориентацията си рано. Следователно зависи от вас да разберете какъв тип текст работите и да решите колко думи да анализирате, използвайки задълбочено обучение. Този пример разглежда само първите 200 думи, което трябва да е достатъчно.

Забелязали сте, че кодът започва да дава код на думи, започващи с числото 3, като по този начин оставя кодове от 0 до 2. По-ниските числа се използват за специални маркери, като сигнализиране на началото на фразата, запълване на празни интервали, за да се фиксира последователността с определена дължина и маркиране на думите, които са изключени, защото не са достатъчно чести. Този пример взема само най-честите 10 000 думи. Използването на маркери за посочване на начални, крайни и забележителни ситуации е трик, който работи с RNN, особено за машинен превод.

от импортиране на keras.preprocessing.sequence pad_sequences
max_pad = 200
x_train = pad_ последствия (x_train,
maxlen = max_pad)
x_test = pad_ последствия (x_test,
maxlen = max_pad)
печат (x_train [0])

Използвайки функцията pad_sequences от Keras с max_pad, зададена на 200, кодът взема първите двеста думи от всеки преглед. В случай че прегледът съдържа по-малко от двеста думи, толкова нулеви стойности, колкото е необходимо, предхождат последователността, за да достигнат необходимия брой елементи от последователността. Изрязването на последователностите до определена дължина и запълването на празнините с нулеви стойности се нарича входно подплащане, важна обработваща дейност при използване на RNN като алгоритми за дълбоко обучение. Сега кодът проектира архитектурата:

от keras.models import Sequences
от keras.layers импортират двупосочни, плътни, отпадащи
от keras.layers импортират GlobalMaxPool1D, LSTM
от keras.layers.embeddings import Embedding
embedding_vector_length = 32
модел = Пореден ()
model.add (поставяне (top_words,
embedding_vector_length,
input_length = max_pad))
model.add (двупосочен (LSTM (64, return_sequences = вярно)))
model.add (GlobalMaxPool1D ())
model.add (Плътна (16, активиране = "relu"))
model.add (Плътна (1, активиране = "сигмоидна"))
model.compile (загуба = 'binary_crossentropy',
оптимизатор = 'Адам,
показатели = [ 'точност'])
печат (model.summary ())

Предишният фрагмент на кода определя формата на модела на задълбочено обучение, където той използва няколко специализирани слоя за обработка на естествен език от Keras. Примерът също изисква резюме на модела (команда model.summary ()), за да се определи какво се случва с архитектурата, като се използват различни невронни слоеве.

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

  • Прилагане на предварително проучено вграждане на думи (като Word2vec или GloVe) към въвеждането на последователност. Просто трябва да предадете матрицата, съдържаща вграждането, в нейните параметри. Създаване на вграждане на дума от нулата въз основа на вложените данни.

Във втория случай Вграждането просто трябва да знае:

  • input_dim: Размерът на речника, очакван от данните output_dim: Размерът на вграденото пространство, което ще бъде произведено (така наречените размери) input_length: Размерът на последователността, който трябва да очаквате

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

Ако използвате слоя Embedding, предоставен от Keras, трябва да запомните, че функцията осигурява само матрица на теглото на размера на речника според размерите на желаното вграждане. Той картографира думите в колоните на матрицата и след това настройва теглата на матрицата към предоставените примери. Това решение, макар и практично за нестандартни езикови проблеми, не е аналогично на обсъжданите по-рано вградени думи, които се обучават по различен начин и на милиони примери.

Примерът използва двупосочно обвиване - LSTM слой от 64 клетки. Двунасочно преобразува нормален LSTM слой, като го удвоява: От първата страна, той прилага нормалната последователност на входовете, които предоставяте; на втория, той преминава обратната страна на последователността. Използвате този подход, защото понякога използвате думи в различен ред, и изграждането на двупосочен слой ще улови всеки модел на думи, независимо от реда. Реализацията на Keras наистина е проста: Просто я прилагате като функция върху слоя, който искате да изобразите двупосочно.

Двупосочният LSTM е зададен да връща последователности (return_sequences = True); тоест за всяка клетка връща предоставения резултат след като видя всеки елемент от последователността. Резултатите за всяка последователност са изходна матрица от 200 х 128, където 200 е броят на секвенционните елементи и 128 е броят на LSTM клетки, използвани в слоя. Тази техника предотвратява RNN да вземе последния резултат от всяка LSTM клетка. Съвети за настроението на текста всъщност могат да се появят навсякъде в последователността на вградените думи.

Накратко, важно е да не вземете последния резултат от всяка клетка, а по-скоро най-добрият резултат от нея. Кодът следователно разчита на следния слой, GlobalMaxPool1D, за да провери всяка последователност от резултати, предоставени от всяка LSTM клетка и да запази само максималния резултат. Това би трябвало да гарантира, че примерът избира най-силния сигнал от всяка LSTM клетка, който, надяваме се, е специализиран с обучението си да избере някои значими сигнали.

След филтрирането на невронните сигнали, примерът има слой от 128 изхода, по един за всяка LSTM клетка. Кодът намалява и смесва сигналите, използвайки последователен плътен слой от 16 неврона с ReLU активиране (като по този начин преминават само положителни сигнали). Архитектурата завършва с краен възел, използвайки сигмоидно активиране, което ще изтласка резултатите в диапазона 0–1 и ще ги направи да изглеждат като вероятности.

След като определите архитектурата, вече можете да обучите мрежата да извършва анализ на настроенията. Три епохи (преминаване на данните три пъти през мрежата, за да научат моделите) ще са достатъчни. Кодът използва партиди от 256 отзива всеки път, което позволява на мрежата да вижда достатъчно разнообразие от думи и настроения всеки път, преди да актуализира теглата си, използвайки backpropagation. И накрая, кодът се фокусира върху резултатите, предоставени от данните за валидиране (които не са част от данните за обучение). Получаването на добър резултат от данните за валидиране означава, че невронната мрежа обработва правилно входа. Кодът отчита данните за валидиране веднага след приключване на всяка епоха.

история = model.fit (x_train, y_train,
validation_data = (x_test, y_test),
epochs = 3, batch_size = 256)

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

загуба, показател = model.evaluate (x_test, y_test, verbose = 0)
печат ("Точност на тест:% 0,3f"% метричен)

Крайната точност, която е процентът на верни отговори от дълбоката невронна мрежа, ще бъде стойност от около 85–86 процента. Резултатът ще се промени леко всеки път, когато стартирате експеримента поради рандомизация при изграждането на вашата невронна мрежа. Това е напълно нормално предвид малкия размер на данните, с които работите. Ако започнете с правилните късметлии, ученето ще бъде по-лесно в такава кратка тренировка.

В крайна сметка мрежата ви е анализатор на настроения, който може да отгатне настроенията, изразени в преглед на филм правилно, около 85 процента от времето. Като се имат предвид още повече данни за обучение и по-сложни невронни архитектури, можете да получите резултати, които са още по-впечатляващи. В маркетинга подобен инструмент се използва за автоматизиране на много процеси, които изискват четене на текст и предприемане на действия. Отново бихте могли да свържете мрежа като тази с невронна мрежа, която слуша глас и го превръща в текст. (Това е друго приложение на RNN, сега захранва Alexa, Siri, Google Voice и много други лични асистенти.) Преходът позволява на приложението да разбере настроенията дори и в гласови изрази, като телефонно обаждане от клиент.

  1. ProgrammingBig DataData Science10 Видове работни места, които използват задълбочено обучение

От Джон Пол Мюлер, Лука Мюлер

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

Дълбокото обучение може да помогне при управлението на хората

Един ужасяващ филм, наречен „Кръгът“, би ви накарал да повярвате, че съвременната технология ще бъде дори по-инвазивна от „Биг Брадър“ в книгата 1984 г. на Джордж Оруел. Част от историята на филма включва инсталиране на камери навсякъде - дори в спални. Главният герой се събужда всяка сутрин, за да поздрави всички, които я гледат. Да, може да ви даде уили, ако го позволите.

Въпреки това, истинското задълбочено обучение не се състои в наблюдение и съдене на хора в по-голямата си част. По-скоро е като глобалния облак на човешки ресурси на Oracle. Далеч не е страшно, тази конкретна технология може да ви накара да изглеждате умни и да отговорите на всички дейности на вашия ден. Видеоклипът е малко отгоре, но ви дава добра представа за това как дълбокото обучение в момента може да улесни работата ви.

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

Дълбокото обучение подобрява медицината

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

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

Дълбокото обучение помага за разработването на нови устройства

Иновациите в някои области на компютърните технологии, като основната система, която вече е стока, се забавят с годините. Иновациите в области, които едва наскоро станаха жизнеспособни, значително се увеличиха. Днес изобретателят има повече възможни търговски обекти за нови устройства от всякога. Една от тези нови области са средствата за изпълнение на задълбочени учебни задачи. За да създадат потенциал за изпълнение на задачи за дълбоко обучение с по-голяма сложност, сега много организации използват специализиран хардуер, който надвишава възможностите на графичните процесори - предпочитаната в момента технология за обработка за задълбочено обучение.

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

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

Дълбокото обучение може да осигури поддръжка на клиенти

Много дискусии за задълбочено обучение се отнасят до чатботите и други форми на поддръжка на клиенти, включително преводачески услуги. В случай, че сте любопитни, можете да имате интерактивно преживяване с чат на Pandorabots.com. Използването на чатботи и други технологии за поддръжка на клиенти обаче предизвикаха безпокойство.

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

Голяма част от технологиите, които виждате, използвани днес, уж заместват човека, но в повечето случаи не могат. Засега трябва да очаквате да видите много ситуации, в които хората и ботовете работят заедно като екип. Ботът намалява напрежението от изпълнение на физически интензивни задачи, както и светските, скучни задължения. Човекът ще направи по-интересните неща и ще предостави творчески решения за неочаквани ситуации. Следователно хората трябва да получат обучение, необходимо за работа в тези области и да се чувстват сигурни, че ще продължат да имат заетост.

Дълбокото обучение може да ви помогне да видите данните по нови начини

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

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

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

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

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

Представете си полицейски отдел, който разпределя ресурси въз основа на моделите на движение на трафика, така че служител вече чака на мястото на очакваната авария. Полицейският лейтенант ще трябва да знае как да използва подобно приложение. Разбира се, тази конкретна употреба все още не се е случила, но е много вероятно, защото това е възможно с помощта на съществуваща технология. Така че извършването на анализ вече няма да бъде работа за онези, които имат „Dr.“ пред имената им; ще бъде за всички.

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

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

Дълбокото обучение ще направи живота ви по-добър и заетостта ви по-приятна, ако случайно имате умения, които ви позволяват да взаимодействате успешно с AI. Тази статия описва как AI може да промени работното място в бъдеще. Важен елемент от тази дискусия е да се направи работата по-привлекателна.

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

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

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

Можете обаче да се чудите за бъдещето си, ако се притеснявате, че може да не успеете да се адаптирате към новата реалност. Проблемът е, че всъщност може да не знаете дали сте в безопасност. В „Изкуствен интелект за манекените“ от Джон Пол Мюлер и Лука Масарон [Уайли] виждате дискусии за професии, безопасни за AI и нови професии, които AI ще създаде. Можете дори да откриете как може в даден момент да работите в космоса. За съжаление, не всички искат да направят подобен ход, както и лудитите не бяха по време на индустриалната революция. Със сигурност, това, което обещава AI, ще има последици дори по-големи, отколкото индустриалната революция (прочетете за последиците от индустриалната революция) и ще бъде още по-разрушителна. Някои политици, като Andrew Wang, вече гледат на краткосрочни поправки като основен универсален доход. Тези политики, ако бъдат приети, биха помогнали за намаляване на въздействието на ИИ, но те няма да осигурят дългосрочно решение. В един момент обществото ще стане значително по-различно от това, което е днес в резултат на AI - толкова, колкото индустриалната революция вече е променила обществото.

Дълбокото обучение може да помогне за неясна или подробна информация за изследванията

Компютрите могат да направят едно нещо - съвпадение по образец - изключително добре (и много по-добро от хората. Ако някога сте имали усещането, че плавате в информация и никой от тях не е свързан с текущата ви нужда, не сте сами. Информация претоварването е проблем от много години и се влошава всяка година. Можете да намерите много съвети за справяне с претоварване с информация. Проблемът е, че все още се давите в информация. Дълбокото обучение ви позволява да намерите иглата в сено, и в разумен период от време. Вместо месеци доброто решение за задълбочено обучение може да намери необходимата информация за няколко часа в повечето случаи.

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

След като AI намери данните и комбинира множество източници в един сплотен доклад (надявате се), той направи всичко възможно за вас. Все още зависи от човека да осмисли информацията и да определи начин за успешното й използване. Компютърът няма да премахне творческата част от задачата; тя премахва труда на намирането на ресурсите, необходими за изпълнение на творческата част от задачата. Тъй като информацията продължава да се увеличава, очаквайте да видите увеличение на броя на хората, които са специализирани в намирането на подробна или неясна информация.

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

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

Повечето хора гледат на архитектурата като на креативна търговия. Представете си да проектирате следващия Емпайър Стейт Билдинг или някаква друга сграда, която ще издържи теста на времето. В миналото проектирането на такава сграда отне години. Колкото и да е странно, изпълнителят всъщност построи Емпайър Стейт Билдинг само за малко повече от година, но това обикновено не е така. Дълбокото учене и компютърните технологии могат да помогнат за намаляване на времето за проектиране и изграждане на сгради значително, като позволяват неща като виртуални инструкции. Всъщност използването на задълбочено обучение подобрява живота на архитектите по значими начини.

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

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

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

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

  1. ProgrammingBig DataData Science10 приложения, които изискват задълбочено обучение

От Джон Пол Мюлер, Лука Мюлер

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

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

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

Тази статия не обсъжда роботи убийци, дистопични фючърси, AI run amok или някой от сензационните сценарии, които може да видите във филмите. Информацията, която намерите тук, е за реалния живот, съществуващи AI приложения, с които можете да взаимодействате днес.

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

Вероятно имате някои черно-бели видеоклипове или снимки на членове на семейството или специални събития, които бихте искали да видите в цвят. Цветът се състои от три елемента: нюанс (действителният цвят), стойност (тъмнината или лекотата на цвета) и наситеност (интензитета на цвета). Колкото и да е странно, много художници са слепи от цветове и използват силно цветовата стойност в своите творения. Така че липсата на оттенък (елементът, който липсва черно-бялото изкуство) не е краят на света. Напротив, някои художници гледат на това като на предимство.

Когато гледате нещо в черно и бяло, виждате стойност и наситеност, но не и оттенък. Оцветяването е процесът на добавяне на оттенъка обратно. Художниците обикновено изпълняват този процес, използвайки старателна селекция от отделни цветове. Въпреки това, AI е автоматизирал този процес, използвайки конволюционни невронни мрежи (CNN).

Най-лесният начин да използвате CNN за колоризиране е да намерите библиотека, която да ви помогне. Сайтът Algorithmia предлага такава библиотека и показва някакъв примерен код. Можете също да опитате приложението, като поставите URL адрес в предоставеното поле. Тази статия на Petapixel.com описва колко добре работи това приложение. Това е абсолютно невероятно!

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

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

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

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

За щастие, днес можете поне да започнете да работите с пози на хора, като използвате библиотеката tfjs-models (PoseNet). Можете да го видите в действие с уеб камера, допълнена с изходния код. Примерът отнема известно време, за да се зареди, така че трябва да бъдете търпеливи.

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

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

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

За щастие вече можете да започнете да извършвате анализ на поведението с Python.

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

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

Премахването обаче доведе и до всякакви сериозни последици, включително до война. Следователно, въпреки че софтуерът за превод е изключително достъпен в Интернет, внимателният избор на кой продукт да се използва е важен. Едно от най-популярните от тези приложения е Google Translate, но са налични много други приложения, като DeepL. Според Forbes машинният превод е една област, в която AI се отличава.

Приложенията за превод обикновено разчитат на двупосочни повтарящи се невронни мрежи (BRNN). Не е нужно да създавате свой собствен BRNN, защото имате много съществуващи API-та, от които да избирате. Например, можете да получите Python достъп до API на Google Translate с помощта на библиотеката. Въпросът е, че преводът вероятно е едно от най-популярните приложения за задълбочено обучение и такова, което много хора използват, без дори да се замислят.

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

Опитът да се определи дали слънчевата енергия действително ще работи във вашето местоположение е трудно, освен ако много други хора също не я използват. Освен това е още по-трудно да разберете какво ниво на спестяване може да се радвате. Разбира се, не искате да инсталирате слънчева енергия, ако тя няма да удовлетвори вашите цели за използването й, което всъщност не може да включва дългосрочни икономии на разходи (макар че по принцип е така). Някои проекти за задълбочено подсилване сега ви помагат да извлечете предположенията от слънчевата енергия, включително Project Sunroof. За щастие, можете също така да получите поддръжка за този вид прогнозиране във вашето приложение Python.

AI може да бие хора при компютърни игри

Конкуренцията AI срещу хората продължава да привлича интерес. От победа в шах до победа в Go, AI изглежда е станал непобедим - поне, непобедим в една игра. За разлика от хората, AI е специализиран и AI, който може да спечели в Go, е малко вероятно да се справи добре в шахмата. Въпреки това 2017 г. често се приветства като начало на края за хората над AI в игрите. Разбира се, състезанието продължава от известно време. Вероятно можете да намерите състезания, които AI спечели далеч по-рано от 2017 г. Всъщност някои източници поставят датата за победа в Go още през октомври 2015 г. Статията в Интересен инженеринг описва 11 други пъти, че AI спечели.

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

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

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

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

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

Лесният начин да внедрите собствената си гласова система е да разчитате на съществуващ API, например облачна реч на текст. Разбира се, може да се нуждаете от нещо, което можете да персонализирате. В този случай използването на API ще се окаже полезно. Тази статия разказва как да създадете собствено гласово приложение, използвайки Python.

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

Демографията, онези жизненоважни или социални статистики, които групират хората по определени характеристики, винаги са били част от изкуството и отчасти науката. Можете да намерите произволен брой статии за това как да накарате компютъра си да генерира демографски данни за клиенти (или потенциални клиенти). Използването на демографски данни е в широк диапазон, но виждате, че те се използват за неща като прогнозиране на кой продукт ще купи конкретна група (спрямо тази на конкуренцията). Демографията е важно средство за категоризиране на хората и след това прогнозиране на някои действия от тяхна страна въз основа на техните групови асоциации. Ето методите, които често виждате цитирани за ИИ при събиране на демографски данни:

  • Исторически: Въз основа на предишни действия, AI обобщава кои действия бихте могли да извършите в бъдеще. Текуща дейност: Въз основа на действието, което извършвате сега и може би други характеристики, като пол, компютърът предсказва следващото ви действие. Характеристики: Въз основа на свойствата, които ви определят, като пол, възраст и област, в която живеете, компютърът прогнозира избора, който е вероятно да направите.

Можете да намерите статии за предсказуемите възможности на AI, които изглеждат почти прекалено добри, за да бъдат истина. Например тази статия на средно ниво казва, че AI вече може да предвиди демографията ви въз основа само на вашето име. Компанията в тази статия, Demografy, твърди, че предоставя пол, възраст и културен афинитет, основаваща се само на име. Въпреки че сайтът твърди, че е 100 процента точен, тази статистика е много малко вероятна, тъй като някои имена са нееднозначни по пол, като например Рене, а други са присвоени на един пол в някои страни, а на друг пол в други. Да, демографското прогнозиране може да работи, но внимавайте, преди да повярвате на всичко, което ви казват тези сайтове.

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

AI може да създава изкуство от реални снимки

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

Въпреки че снимките са приятни за окачване на стената, може да искате да създадете други видове изкуство. Например, можете да създадете 3-D версия на вашата снимка, като използвате продукти като Smoothie 3-D. Не е същото като създаването на скулптура; по-скоро използвате 3-D принтер, за да създадете 3-D версия на вашата снимка. Вижте експеримент, който можете да извършите, за да видите как работи процесът.

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

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

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

Дълбокото обучение предоставя средства за търсене на изключително фини модели, които затъват умовете на хората. Тези модели могат да ви помогнат да предскажете естествена катастрофа според статията за решението на Google. Фактът, че софтуерът изобщо може да предскаже всякакви бедствия, е просто невероятен. Тази статия обаче предупреждава, че да се разчита изключително на такъв софтуер би било грешка.

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

  1. Програмиране на големи данниData ScienceDeep за учене и повтарящи се невронни мрежи

От Джон Пол Мюлер, Лука Мюлер

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

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

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

Повтарящи се невронни мрежи: Моделиране на последователности с използване на памет

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

Повтарящите се невронни мрежи (RNN) са алтернатива на перцептрон и CNN. Те се появяват за първи път през 80-те години на миналия век, а различни изследователи работят за подобряването им, докато наскоро не спечелят популярност благодарение на развитието на задълбоченото обучение и изчислителната мощ.

Идеята зад RNN е проста, те изследват всеки елемент от последователността веднъж и запазват памет за него, така че да могат да го използват повторно, когато изследват следващия елемент в последователността. Прилича на това как работи човешкият ум, когато чете текст: човек чете буква по буква текста, но разбира думите, като си спомня всяка буква в думата. По подобен начин RNN може да свърже дума с резултат, като запомни последователността на буквите, които получава. Разширяването на тази техника позволява да се поиска RNN да определи дали фразата е положителна или отрицателна - широко използван анализ, наречен анализ на настроенията. Мрежата свързва положителен или отрицателен отговор на определени последователности от думи, които е видяла в примери за обучение.

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

дълбоко обучение и повтарящи се невронни мрежи

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

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

  1. Обработва ги, променяйки състоянието с всеки вход. Излъчва изход. След като видя последния изход, RNN научава най-добрите тегла за картографиране на входа в правилния изход, използвайки backpropagation.

Повтарящи се невронни мрежи: Разпознаване и превеждане на реч

Способността за разпознаване и превод между езици става все по-важна с всеки изминал ден, тъй като икономиките навсякъде стават все по-глобализирани. Езиковият превод е област, в която AI има определено предимство пред хората - дотолкова, че статии от списание Digitalist Magazine и Forbes започват да поставят под въпрос колко дълго преводачът на хората ще остане жизнеспособен.

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

  • Съхранявайте всички изходи, предоставени от клетката RNN Запазете последния изход на RNN клетка

Последният изход е изходът на целия RNN, защото се произвежда след завършване на проверката на последователността. Можете обаче да използвате предишните изходи, ако трябва да предскажете друга последователност или възнамерявате да подреждате повече RNN клетки след текущата, например когато работите с Convolutional Neural Networks (CNNs). Поставянето на RNN вертикално дава възможност на мрежата да научи сложни модели на последователности и да стане по-ефективна при изготвяне на прогнози.

Можете също така да подреждате RNN хоризонтално в същия слой. Разрешаването на множество RNN да се учат от дадена последователност може да ви помогне да получите повече от данните. Използването на множество RNN е подобно на CNN, в които всеки един слой използва дълбочините на завъртания, за да научи подробности и модели от изображението. В случая на множество RNN слоят може да схване различни нюанси на последователността, която изследват.

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

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

  • Едно към едно: Когато имате един вход и очаквате един изход. Те вземат един случай, съставен от определен брой информационни променливи, и предоставят оценка, като число или вероятност. Един към много: Тук имате един вход и в резултат очаквате последователност от изходи. Автоматичните невронни мрежи с надписи използват този подход: Вие въвеждате едно изображение и създавате фраза, описваща съдържанието на изображението. Мнозина до едно: Класическият пример за RNN. Например, въвеждате текстова последователност и очаквате един резултат като изход. Виждате този подход, използван за изготвяне на оценка за анализ на настроенията или друга класификация на текста. Много до много: Вие предоставяте последователност като вход и очаквате получена последователност като изход. Това е основната архитектура за много от най-впечатляващите AI приложения с дълбоко обучение. Този подход се използва за машинен превод (като мрежа, която може автоматично да преведе фраза от английски на немски), чатботи (невронна мрежа, която може да отговори на вашите въпроси и да спори с вас) и етикетиране на последователността (класифициране на всяко от изображенията в видео).
периодичен вход и изход на невронна мрежа

Машинен превод е способността на машината да превежда, правилно и смислено, един човешки език на друг. Тази способност е нещо, което учените се стремят да постигнат дълго време, особено за военни цели. Можете да прочетете завладяващата история на всички опити за извършване на машинен превод от американски и руски учени в статията на Василий Зубарев. Истинският пробив се случи едва след като Google стартира своя Google Neural Machine Translation (GNMT), за който можете да прочетете повече в блога на Google AI. GNMT разчита на поредица от RNN (използвайки парадигмата много към много), за да прочете последователността на думите на езика, от който искате да преведете (наречен кодиращ слой) и върне резултатите в друг RNN слой (слой на декодера), който преобразува го в преведен изход.

Невронният машинен превод се нуждае от два слоя, защото граматиката и синтаксисът на един език могат да бъдат различни от друг. Една RNN не може да схване две езикови системи едновременно, така че двойката кодер-декодер е необходима за работа с двата езика. Системата не е перфектна, но е невероятен скок напред от предишните решения, описани в статията на Василий Зубарев, което значително намалява грешките в реда на словото, лексикалните грешки (избраната дума за превод) и граматиката (как се използват думите).

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

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

Повтарящи се невронни мрежи: Поставяне на правилния надпис върху снимки

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

Генерирането на надписи може да помогне на хората с нарушено зрение да възприемат средата си, като използват устройства като Horus, които могат да се носят, или да изградят мост между изображения и бази от знания (които са базирани на текст) за роботи - което им позволява да разберат по-добре заобикалящата ги среда. Започвате от специално разработени набори от данни, като например набор от данни за Pascal Sentence; Flickr 30K, който се състои от Flickr изображения, анотирани от извличане на тълпата; или данните от MS Coco. Във всички тези набори от данни всяко изображение включва една или повече фрази, обясняващи съдържанието на изображението. Например, в извадката номер 5947 на набора данни на MS Coco, виждате четири летящи самолета, които бихте могли правилно да надпишете като:

  • Четири самолета в небето над главата на облачен ден Четири едномоторни самолета във въздуха в облачен ден Група от четири самолета, летящи по форма Група самолети, летящи през небето Флот самолети лети през небето

Добре обучената невронна мрежа трябва да може да произвежда аналогични фрази, ако е представена с подобна снимка. Google първо публикува документ за решението на този проблем, наречен Show and Tell network или Neural Image Caption (NIC) през 2014 г., след което го актуализира една година по-късно.

Оттогава Google откри NIC и го предложи като част от рамката на TensorFlow. Като невронна мрежа се състои от предварително проучен CNN (като Google LeNet, победител през 2014 г. в конкурса ImageNet), който обработва изображенията по подобен начин, за да прехвърли обучението.

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

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

  1. ПрограмиранеГолеми данниData ScienceDeep обучение и обработка на естествен език

От Джон Пол Мюлер, Лука Мюлер

Като опростяване можете да видите езика като поредица от думи, направени от букви (както и препинателни знаци, символи, емотикони и т.н.). Дълбокото обучение обработва езика най-добре чрез използване на слоеве RNN, като LSTM или GRU. Въпреки това, знаейки да използвате RNN не ви казва как да използвате последователности като вход; трябва да определите вида на последователностите. Всъщност мрежите за дълбоко обучение приемат само цифрови входни стойности. Компютрите кодират буквени последователности, които разбирате в числа според протокол, като Unicode Transformation Format-8 bit (UTF-8). UTF-8 е най-използваното кодиране.

Дълбокото обучение може също да обработва текстови данни, използвайки Convolutional Neural Networks (CNNs) вместо RNNs, като представя последователности като матрици (подобно на обработката на изображения). Keras поддържа CNN слоеве, като Conv1D, които могат да работят с подредени функции във времето - тоест последователности от думи или други сигнали. Изходът на 1D кондукция обикновено е последван от слой MaxPooling1D, който обобщава резултатите. CNN, приложени към последователности, намират ограничение в тяхната нечувствителност към глобалния ред на последователността. (Те са склонни да забелязват локални модели.) Поради тази причина те се използват най-добре при последователна обработка в комбинация с RNN, а не като тяхна подмяна.

Обработка на естествен език (NLP) се състои от серия от процедури, които подобряват обработката на думи и фрази за статистически анализ, алгоритми за машинно обучение и задълбочено обучение. НЛП дължи корените си на компютърната лингвистика, задвижваща AI базирани на правила системи, като експертни системи, които взеха решения въз основа на компютърен превод на човешко знание, опит и начин на мислене. НЛП усвоява текстовата информация, която е неструктурирана, в по-структурирани данни, така че експертните системи да могат лесно да ги манипулират и оценяват.

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

Обработка на естествен език: Дефиниране на разбирането като токенизация

В тръбопровода за NLP първата стъпка е получаване на суров текст. Обикновено го съхранявате в паметта или достъп до него от диск. Когато данните са твърде големи, за да се поберат в паметта, поддържате указател към него на диска (като името на директорията и името на файла). В следващия пример използвате три документа (представени от низови променливи), съхранени в списък (контейнерът за документи е корпусът в nat

импортиране numpy като np
текстове = ["Кучето ми се разбира с котките",
„Тази котка е порочна“,
„Моето куче е щастливо, когато е обяд“]

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

  • Нормализиране: Премахване на главни букви. Почистване: Премахнете нетекстуални елементи като препинателни знаци и числа. Токенизация: Разделете изречение на отделни думи. Премахване на премахването на думи: Премахнете често срещаните неинформативни думи, които не придават значение на изречението, като например статиите а и а. Премахването на отрицания като не може да бъде пагубно, ако искате да отгатнете настроенията. Стъбване: Намалете дума до нейното стъбло (което е словоформата преди добавяне на флективни приставки). Алгоритъм, наречен ствол, може да направи това въз основа на поредица от правила. Лематизация: Преобразувайте дума в нейната речникова форма (лемата). Това е алтернатива на стъблото, но е по-сложно, защото не използвате алгоритъм. Вместо това използвате речник, за да преобразувате всяка дума в нейната лема. Поставяне на етикети: маркирайте всяка дума във фраза със своята граматична роля в изречението (като маркиране на дума като глагол или като съществително). N-грам: Свържете всяка дума с определен брой (n в n-грам) от следните думи и ги третирайте като уникален набор. Обикновено двуграмовите (серия от два съседни елемента или жетони) и три грама (серия от три съседни елемента или жетони) работят най-добре за целите на анализа.

За да постигнете тези трансформации, може да ви е необходим специализиран пакет Python като NLTK или Scikit-learn. Когато работите с дълбоко обучение и голям брой примери, имате нужда само от основни трансформации: нормализиране, почистване и токенизация. Дълбоките учебни слоеве могат да определят каква информация да извлечете и обработите. Когато работите с няколко примера, трябва да осигурите възможно най-много обработка на NLP, за да помогнете на мрежата за дълбоко обучение да определи какво да правите, въпреки малкото ръководство, предоставено от няколкото примера.

Keras предлага функция, keras.preprocessing.text.Tokenizer, която се нормализира (използвайки долния параметър, зададен на True), почиства (параметърът на филтрите съдържа низ от символи, които трябва да премахнете, обикновено тези: '! "# $% & ( ) * +, -. /:; <=>? @ [\] ^ _ `{|} ~ ') и токенизира.

Обработка на естествен език: Поставяне на всички документи в торба

След обработката на текста трябва да извлечете съответните функции, което означава преобразуване на останалия текст в числова информация, за да се обработва невронната мрежа. Това обикновено се прави с помощта на подхода „торба с думи”, който се получава чрез честотно кодиране или двоично кодиране на текста. Този процес се равнява на преобразуването на всяка дума в матрична колона, толкова широка, колкото е броят на думите, които трябва да представите. Следващият пример показва как да се постигне този процес и какво той предполага. Като първа стъпка подготвяте основна нормализация и токенизация, като използвате няколко Python команди, за да определите размера на думата на лексиката за обработка:

unique_words = set (word.lower () за фраза в текстове за
дума във фраза.split (""))
print (f "Има {len (unique_words)} уникални думи")

Кодът отчита 14 думи. Сега продължавате да зареждате функцията Tokenizer от Keras и да я настроите да обработва текста, като предоставя очаквания размер на речника:

от токенизатор за импортиране на keras.preprocessing.text
vocabulary_size = len (unique_words) + 1
tokenizer = Tokenizer (num_words = лексика_размер)

Използването на речник_размер, който е твърде малък, може да изключи важни думи от процеса на обучение. Този, който е твърде голям, може безполезно да консумира компютърна памет. Трябва да предоставите на Tokenizer правилна оценка на броя на отделните думи, съдържащи се в списъка с текстове. Също така винаги добавяте 1 към речника_размер, за да осигурите допълнителна дума за началото на фраза (термин, който помага на мрежата за дълбоко обучение). На този етап Tokenizer картографира думите, присъстващи в текстовете, в индекси, които са цифрови стойности, представляващи думите в текста:

tokenizer.fit_on_texts (текстове)
печат (tokenizer.index_word)

Получените индекси са следните:

{1: 'е', 2: 'моя', 3: 'куче', 4: 'получава', 5: 'заедно',
6: „с“, 7: „котки“, 8: „онова“, 9: „котка“, 10: „порочен“,
11: „щастлив“, 12: „кога“, 13: „то“, 14: „обяд“}

Индексите представляват номера на колоната, в която се съдържа информацията за думата:

печат (tokenizer.texts_to_matrix (текстове))

Ето последната матрица:

[[0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0.]
[0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1.]]

Матрицата се състои от 15 колони (14 думи плюс началото на показалеца на фразата) и три реда, представляващи трите обработени текста. Това е текстовата матрица за обработка с помощта на плитка невронна мрежа (RNN изискват различен формат, както е обсъдено по-нататък), който винаги е оразмерен като речник_размер по броя на текстовете. Числата в матрицата представляват броя на появата на една дума във фразата. Това обаче не е единственото възможно представяне Ето и другите:

  • Кодиране на честотата: брои броя на появилите се думи във фразата. едно горещо кодиране или двоично кодиране: Отбелязва присъствието на дума във фраза, независимо колко пъти се появява. Оценка на термина на обратна честота на документа (TF-IDF): Кодира мярка спрямо броя на думите, които се появяват в документ по отношение на общия брой думи в матрицата. (Думите с по-високи резултати са по-отличителни; думите с по-ниски резултати са по-малко информативни.)

Можете директно да използвате трансформацията TF-IDF от Keras. Tokenizer предлага метод text_to_matrix, който по подразбиране кодира вашия текст и го трансформира в матрица, в която колоните са вашите думи, редовете са ваши текстове, а стойностите са честотата на думите в текста. Ако приложите преобразуването, като посочите mode = 'tfidf', трансформацията използва TF-IDF вместо честоти на думи, за да запълни матричните стойности:

отпечатате (np.round (tokenizer.texts_to_matrix (текстове,
режим = 'tfidf'), 1))

Обърнете внимание, че използвайки матрично представяне, без значение дали използвате двоичен, честотен или по-сложния TF-IDF, сте загубили всякакъв смисъл за подредба на думи, която съществува във фразата. По време на обработката думите се разпръскват в различни колони и невронната мрежа не може да познае реда на думите във фразата. Тази липса на ред е причината да го наречете подход „торба с думи“.

Подходът „торба с думи“ се използва в много алгоритми за машинно обучение, често с резултати вариращи от добри до справедливи и можете да го приложите към невронна мрежа, като използвате плътни слоеве на архитектурата. Трансформациите на думи, кодирани в n_gram (обсъдени в предишния параграф като преобразуване на обработка на NLP), предоставят още малко информация, но отново не можете да свържете думите.

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

печат (tokenizer.texts_to_sequences (текстове))

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

[[0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]]

В това представяне получавате отчетлива матрица за всеки текст. Всяка матрица представя отделните текстове като отделни думи, използвайки колони, но сега редовете представляват реда на появата на думите. (Първият ред е първата дума, вторият ред е втората дума и т.н.)

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

  1. ПрограмиранеГолеми данниData ScienceNeural Networks и Deep Learning: Диференциране на невронната мрежа

От Джон Пол Мюлер, Лука Мюлер

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

Избор на правилната функция за активиране на вашата невронна мрежа

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

y = ∑ (тегло * вход) + отклонение

Изходът, y, може да бъде всяка стойност между + безкрайност и - безкрайност. Проблемът е, в такъв случай, да решите каква стойност на y е стойността на изстрелване, където функцията за активиране влиза в игра във вашата невронна мрежа. Функцията за активиране определя коя стойност е достатъчно висока или ниска, за да отразява точка за вземане на решение в невронната мрежа за определен неврон или група неврони.

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

  • Стъпка: Етапна функция (наричана още двоична функция) разчита на конкретен праг за вземане на решение за активиране или не. Използването на стъпка функция означава, че знаете коя конкретна стойност ще предизвика активиране. Функциите на стъпките обаче са ограничени, тъй като те са напълно активирани или напълно деактивирани - не съществуват нюанси на сивото. Следователно, когато се опитвате да определите кой клас е най-вероятно правилен въз основа на даден вход, стъпкова функция няма да работи. Линеен: Линейна функция (A = cx) осигурява праволинейно определяне на активиране на базата на вход. Използването на линейна функция ви помага да определите кой изход да активирате въз основа на кой изход е най-правилен (изразен с претегляне). Линейните функции обаче работят само като един слой. Ако трябва да стекирате няколко линейни функционални слоя, изходът ще бъде същият като използването на един слой, което побеждава целта на използването на невронни мрежи. Следователно линейна функция може да се появи като един слой, но никога като множество слоеве. Сигмоидна: Сигмоидната функция (A = 1/1 + e-x), която произвежда крива във формата на буквата С или S, е нелинейна. Тя започва като изглежда като стъпка функция, с изключение на това, че стойностите между две точки действително съществуват на крива, което означава, че можете да подреждате сигмоидни функции за извършване на класификация с множество изходи. Обхватът на сигмоидната функция е между 0 и 1, а не - безкрайност до + безкрайност, както при линейна функция, така че активациите са свързани в определен диапазон. Сигмоидната функция обаче страда от проблем, наречен изчезващ градиент, което означава, че функцията отказва да научи след определена точка, защото разпространената грешка се свива до нула, когато се приближава до далечните слоеве. Tanh: Tanh функция (A = (2/1 + e-2x) - 1) всъщност е мащабирана сигмоидна функция. Той има диапазон от -1 до 1, така че отново, това е точен метод за активиране на неврони. Голямата разлика между сигмоидните функции и танх функциите е, че градиентът на тънската функция е по-силен, което означава, че откриването на малки разлики е по-лесно, което прави класификацията по-чувствителна. Подобно на сигмоидната функция, tanh страда от изчезващи градиентни проблеми. ReLU: ReLU или Ректифицирани линейни единици, функцията (A (x) = max (0, x)) осигурява изход в диапазона от 0 до безкрайност, така че е подобна на линейната функция, с изключение на това, че е също нелинейна, което ви позволява за подреждане на ReLU функции. Предимство на ReLU е, че той изисква по-малка мощност на обработка, тъй като по-малко неврони се запалват. Липсата на активност, когато невронът се приближава до 0 част от линията, означава, че има по-малко потенциални изходи за гледане. Това предимство обаче може да се превърне в недостатък, когато имате проблем, наречен умиращ ReLU. След известно време тежестите на невронната мрежа вече не дават желания ефект (просто спира да се учи), а засегнатите неврони умират - те не реагират на никакъв вход.

Също така, ReLU има някои варианти, които трябва да имате предвид:

  • ELU (експоненциална линейна единица): се различава от ReLU, когато входовете са отрицателни. В този случай изходите не отиват до нула, а вместо това бавно намаляват до –1 експоненциално. PReLU (Параметрична изправена линейна единица): Различава се от ReLU, когато входовете са отрицателни. В този случай изходът е линейна функция, чиито параметри се научават с помощта на същата техника като всички други параметри на мрежата. LeakyReLU: Подобно на PReLU, но параметърът за линейната страна е фиксиран.

Разчитайте на интелигентен оптимизатор за вашата невронна мрежа

Оптимизаторът служи да гарантира, че вашата невронна мрежа изпълнява бързи и правилни модели, независимо от проблема, който искате да решите, като променяте пристрастията и теглата на невронната мрежа (вижте тази статия за повече за подобряване на вашите модели на машинно обучение). Оказва се, че един алгоритъм изпълнява тази задача, но трябва да изберете правилния алгоритъм, за да получите очакваните резултати. Както при всички сценарии на невронната мрежа, имате няколко незадължителни типа алгоритми, от които да избирате:

Стохастичен наклон на наклон (SGD)

  • RMSProp AdaGrad AdaDelta AMSGrad Адам и неговите варианти, Адамакс и Надам

Оптимизаторът работи, като минимизира или максимизира изхода на обективна функция (известна също като функция за грешка), представена като E (x). Тази функция зависи от вътрешните параметри за учене на модела, използвани за изчисляване на целевите стойности (Y) от прогнозите (X). Два вътрешни обучими параметъра са тегла (W) и отклонение (b). Различните алгоритми имат различни методи за справяне с обективната функция.

Можете да категоризирате функциите на оптимизатора по начина, по който се справят с производната (dy / dx), което е мигновената промяна на y по отношение на x. Ето двете нива на обработка на деривати:

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

Често използвате техники за оптимизация от първи ред в невронни мрежи, като Gradient Descent, защото те изискват по-малко изчисления и са склонни да се сближават с добро решение сравнително бързо, когато работите върху големи масиви от данни.

Задаване на работещ курс на обучение във вашата невронна мрежа

Всеки оптимизатор има напълно различни параметри за настройка на вашата невронна мрежа. Една константа е фиксирането на скоростта на обучение, която представлява скоростта, с която кодът актуализира теглата на мрежата (като алфа параметъра). Скоростта на обучение може да повлияе както на времето, което нервната мрежа отнема, за да научи добро решение (броя на епохите), така и на резултата. В действителност, ако степента на обучение е твърде ниска, на мрежата ви ще е необходимо да се учи завинаги. Задаването на твърде висока стойност причинява нестабилност при актуализиране на теглата и мрежата никога няма да се сближи с добро решение.

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

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

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

  1. ПрограмиранеГолеми данниData ScienceКак работи машинното обучение?

От Джон Пол Мюлер, Лука Мюлер

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

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

Разбиране как работи машинното обучение

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

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

Изображението по-долу показва изключително проста графика, която симулира случващото се при машинно обучение. В този случай, започвайки от входните стойности от 1, 4, 5, 8 и 10 и сдвояването им със съответните им изходи от 7, 13, 15, 21 и 25, алгоритъмът за машинно обучение определя, че най-добрият начин за представяне на съотношението между входа и изхода е формулата 2x + 5. Тази формула определя модела, използван за обработка на входните данни - дори нови, невиждани данни - за изчисляване на съответната изходна стойност. Линията на тренда (моделът) показва модела, формиран от този алгоритъм, така че нов вход от 3 ще доведе до прогнозиран резултат от 11. Въпреки че повечето сценарии за машинно обучение са много по-сложни от този (и алгоритъмът не може да създаде правила, които прецизно картографират всеки вход с точен изход), примерът дава основна представа за случващото се. Вместо да се налага индивидуално програмиране на отговор за вход от 3, моделът може да изчисли правилния отговор въз основа на двойките вход / отговор, които е научил.

основен сценарий за машинно обучение

Разбирането, че машинното обучение е чиста математика

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

Ученето в машинно обучение е чисто математическо и завършва с свързване на определени входове с определени резултати. Няма нищо общо с разбирането на това, което алгоритъмът е научил. (Когато хората анализират данни, ние изграждаме разбиране на данните до известна степен.) Процесът на обучение често се описва като обучение, защото алгоритъмът е обучен да съответства на правилния отговор (изхода) на всеки предложен въпрос (вход). (Машинно обучение за манекени, от Джон Пол Мюлер и Лука Масарон, описва как работи този процес в детайли.)

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

Различни стратегии за машинно обучение

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

  • Контролирано машинно обучение Безконтролно машинно обучение Самоуправлявано машинно обучение Укрепване машинно обучение

Следващите раздели обсъждат тези стилове на машинно обучение.

Контролирано машинно обучение

Когато работите с контролирани алгоритми за машинно обучение, входните данни са етикетирани и имат конкретен очакван резултат. Използвате обучение, за да създадете модел, който даден алгоритъм отговаря на данните. С напредването на обучението прогнозите или класификациите стават по-точни. Ето няколко примера за контролирани алгоритми за машинно обучение:

  • Линейна или логистична регресия Поддържащи векторни машини (SVM) Наивен Байес Най-близки съседи (KNN)

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

Безконтролно машинно обучение

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

  • Групирането Откриване на аномалия Невронни мрежи

Самоуправлявано машинно обучение

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

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

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

Укрепване машинно обучение

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

Обучение, валидиране и тестване на данни за машинно обучение

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

  • Обучение: Машинното обучение започва, когато тренирате модел, използвайки определен алгоритъм спрямо конкретни данни. Данните за обучението са отделни от всички други данни, но те също трябва да бъдат представителни. Ако данните за обучение не представляват истински проблемния домейн, полученият модел не може да даде полезни резултати. По време на процеса на обучение виждате как моделът реагира на тренировъчните данни и правите промени, ако е необходимо, на алгоритмите, които използвате и начина, по който масажирате данните, преди да въведете алгоритъма. Валидиране: Много набори от данни са достатъчно големи, за да се разделят на тренировъчна част и тестова част. Първо тренирате модела, използвайки данните за обучение, а след това го валидирате, като използвате данните за тестване. Разбира се, данните за тестване отново трябва да представят точно домейна на проблема. Той също така трябва да бъде статистически съвместим с данните за обучението. В противен случай няма да видите резултати, които отразяват как действително ще работи моделът. Тестване: След като моделът е обучен и утвърден, все още трябва да го тествате с помощта на данни от реалния свят. Тази стъпка е важна, защото трябва да се уверите, че моделът действително ще работи върху по-голям набор от данни, който не сте използвали нито за обучение, нито за тестване. Както при стъпките за обучение и валидиране, всички данни, които използвате по време на тази стъпка, трябва да отразяват проблемния домейн, с който искате да взаимодействате, като използвате модела на машинно обучение.

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

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

Машинен класификатор за работа работи по същия начин. Алгоритъмът за класификатор ви предоставя клас като изход. Например, може да ви каже, че снимката, която предоставяте като вход, съответства на класа на дървото (а не животно или човек). За целта той изгражда своите познавателни способности чрез създаване на математическа формулировка, която включва всички дадени входни характеристики по начин, който създава функция, която може да различи един клас от друг.

Търсите обобщение в машинното обучение

За да бъде полезен, моделът на машинно обучение трябва да представлява общ изглед на предоставените данни. Ако моделът не следва данните достатъчно отблизо, той е недостатъчен - тоест, не е пригоден достатъчно поради липса на обучение. От друга страна, ако моделът следи данните прекалено внимателно, той е преизпълнен, следвайки точките с данни като ръкавица поради твърде много обучение. Недостатъчното и презадоволяването създават проблеми, защото моделът не е достатъчно генерализиран, за да даде полезни резултати. Предвид неизвестни входни данни, получените прогнози или класификации ще съдържат големи стойности на грешки. Само когато моделът е правилно приспособен към данните, той ще даде резултати в разумни граници на грешки.

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

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

  • Силно познаване на наличните алгоритми за машинно обучение Опит в работата с въпросния вид данни Разбиране на желания резултат Желание за експериментиране с различни алгоритми за машинно обучение

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

Запознаване с границите на пристрастия

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

  • Данни: Самите данни могат да съдържат невярно съдържание или просто погрешни представяния. Например, ако определена стойност се появява два пъти по-често в данните, отколкото в реалния свят, изходът от решение за машинно обучение е опетнен, въпреки че самите данни са правилни. Алгоритъм: Използването на грешен алгоритъм ще доведе до решение за машинно обучение, за да пасне неправилно на модела към данните. Обучение: Твърде много или твърде малко обучение променя начина, по който моделът пасва на данните и следователно на резултата. Човешка интерпретация: Дори когато машинното решение дава правилен резултат, човекът, използващ този изход, може да го интерпретира неправилно. Резултатите са малко по-лоши, а може би и по-лоши, отколкото когато решението за машинно обучение не работи както се очакваше.

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

Имайки предвид сложността на модела за машинно обучение

По-просто е винаги по-добре, когато става дума за машинно обучение. Много различни алгоритми могат да ви дадат полезен изход от вашето машинно решение за обучение, но най-добрият алгоритъм за използване е този, който е най-лесен за разбиране и осигурява най-лесните резултати. Обръщението на Occam като цяло е признато за най-добрата стратегия, която трябва да следвате. По принцип, бръсначът на Occam ви казва да използвате най-простото решение, което ще реши конкретен проблем. С увеличаването на сложността нараства и потенциалът за грешки.

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