Будь-який пайтоніст вам скаже, що ця весела мова програмування, натхненна цирком Монті Пайтона, існує трохи більше 30 років, але набула популярності лише в останнє десятиліття. Вам не цікаво чому?

Гвідо ван Россум, творець Python і доброзичливий пожиттєвий диктатор, стверджує, що його мова народилася внаслідок розчарування у надто складних мовах програмування, які існували у 1989 році; зокрема, у мові ABC, яка задумувалася простішою за Pascal і BASIC. Але такою не стала.

Майте на увазі, на той час комп’ютери були далекі від мейнстріму – до публічного доступу до Всесвітньої павутини залишалося ще чотири роки, а штучний інтелект залишався за межею наукової фантастики.

Сьогодні завдяки вражаючому прогресу на різних технологічних фронтах безпілотні автомобілі знаходяться на завершальному етапі тестування, а розумні роботи – вже однією ногою в сучасності. Щоб вони стали реальністю, ці машини мають вчитися на своєму досвіді та бути спроможними приймати рішення на його основі.

Це, в двох словах, визначення машинного навчання. А Python уроки, мабуть, є найкращою мовою для цього.

Ви можете сказати, що після десятиліть очікування Python нарешті знайшов своє призначення, що пояснює раптову популярність цієї мови. Або можете так не вважати. Дозвольте Superprof допомогти вам розібратися з цією невизначеністю.

Найкращі репетитори з Python вільні зараз
Nazar
4,9
4,9 (54 відгуки)
Nazar
500₴
/год
Gift icon
1-ий урок безкоштовно!
Олександр
5
5 (32 відгуки)
Олександр
500₴
/год
Gift icon
1-ий урок безкоштовно!
Сергій
4,9
4,9 (16 відгуки)
Сергій
400₴
/год
Gift icon
1-ий урок безкоштовно!
Данило
5
5 (6 відгуки)
Данило
500₴
/год
Gift icon
1-ий урок безкоштовно!
Anastasiia
5
5 (10 відгуки)
Anastasiia
500₴
/год
Gift icon
1-ий урок безкоштовно!
Ярослав
5
5 (4 відгуки)
Ярослав
400₴
/год
Gift icon
1-ий урок безкоштовно!
Андрій
5
5 (34 відгуки)
Андрій
200₴
/год
Gift icon
1-ий урок безкоштовно!
Natali
5
5 (8 відгуки)
Natali
280₴
/год
Gift icon
1-ий урок безкоштовно!
Nazar
4,9
4,9 (54 відгуки)
Nazar
500₴
/год
Gift icon
1-ий урок безкоштовно!
Олександр
5
5 (32 відгуки)
Олександр
500₴
/год
Gift icon
1-ий урок безкоштовно!
Сергій
4,9
4,9 (16 відгуки)
Сергій
400₴
/год
Gift icon
1-ий урок безкоштовно!
Данило
5
5 (6 відгуки)
Данило
500₴
/год
Gift icon
1-ий урок безкоштовно!
Anastasiia
5
5 (10 відгуки)
Anastasiia
500₴
/год
Gift icon
1-ий урок безкоштовно!
Ярослав
5
5 (4 відгуки)
Ярослав
400₴
/год
Gift icon
1-ий урок безкоштовно!
Андрій
5
5 (34 відгуки)
Андрій
200₴
/год
Gift icon
1-ий урок безкоштовно!
Natali
5
5 (8 відгуки)
Natali
280₴
/год
Gift icon
1-ий урок безкоштовно!
Поїхали!

Що таке навчання?

Озирніться на свій досвід навчання. Ніхто вас не звинувачуватиме, якщо школа — перше, що спало вам на думку, і ця згадка добре пасуватиме до наших аргументів. Для дітей, що цікавляться програмуванням, чудовим вибором є онлайн-курси програмування для дітей.

То як ви навчалися в школі?

Хтось, зазвичай вчитель, передав інформацію, яку ви обробляли та зберігали в довгостроковій пам’яті. Поки що все йде за планом: це звучить точно як програмування комп’ютера. Єдина відмінність полягає в тому, що вам не подавали окремі шматки знань у вакуумі; усе, про що ви дізналися за шкільні роки, складалося у взаємопов’язану систему, і, найчастіше, саме від вас вимагалося встановити і побачити ці зв’язки.

гарвард
Значна частина інформації, засвоєної в дитинстві, прийшла до нас через гру та експерименти. Фото: Unsplash

А тепер повернімося трохи далі у часі, у дошкільний період життя. Як ви пізнавали світ?

Люди (та і в принципі тварини) отримують інформацію з різних джерел та приймають рішення на основі свого досвіду. Падати і битися головою – боляче; давайте зробимо все можливе, щоб не падати і не відчувати біль. Удари та кусання інших дітей викликають гнівну реакцію дорослих та, можливо, провокують покарання; незабаром ми всі навчилися не кусати і не бити інших дітей.

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

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

Дивовижна річ у тому, що дітки мають мало досвіду чи інформації, на основі яких могли б прийняти рішення, і, що ще більш вражаюче – їх ніколи не вчили, як щось вирішувати.

Вас цікавлять уроки Python?

Машини зовсім не такі.

По-перше, у них є лише одне джерело вхідних даних: їх програміст(и). По-друге, їх треба навчити приймати рішення; якщо ви якимось чином знайомі з комп’ютерними мовами, подумайте лише про всі команди «if/else», «with», «def» і «try», які пронизують будь-який код.

Зрештою, у машин немає стимулу вчитися чи працювати. Машини не можуть бути винагороджені за хорошу роботу – принаймні, не так, як люди визначають винагороду (про це трохи пізніше). Вони також не можуть бути покарані за погано виконану роботу.

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

Тож, незважаючи на те, що Python був натхненний однією з найкращих комедійних труп усіх часів, запрограмована на Python робототехніка ніколи не навчиться оцінювати абсурдність легендарного Монті Пайтона.

Тим не менш, програмування машин на вивчення дуже цінне; давайте дізнаємося, як це робиться.

Як вчаться машини

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

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

Тип машинного навчання, з яким ви, ймовірно, найбільше знайомі, знаєте ви це чи ні, - навчання з підкріпленням. Він передбачає взаємодію машини з динамічним середовищем, у якому машина повинна виконувати серію дій.

самокерований автомобіль
Автівки, що їздять без водія, нашпиговані датчиками та мінікомп'ютерами, які постійно передають інформацію про стан трафіку. Обробка даних відбувається постійно! Фото: Unsplash

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

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

Як ми зазначали попередньо, покарання та винагорода можуть зміцнити бажану поведінку... ви відчуваєте, куди ми хилимо?

За допомогою навчання з підкріпленням машини можуть очікувати винагороду за виконання будь-якої позитивно інтерпретованої дії. Весь контекст винагород занадто великий, щоб охопити його тут. Ми просто скажемо, що ці винагороди накопичуються, тобто чим більше бажаних відповідей буде надано, тим більшою буде винагорода машини після виконання завдання.

Це робить закріплююче навчання ідеальним навчальним інструментом для безпілотних автомобілів, а також комп’ютерних ігор, таких як AlphaGo та Deep Blue, гра в шахи від IBM.

Python і машинне навчання

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

  • графічні інтерфейси користувача (GUI)
  • комп'ютерні мережі
  • мультимедіа
  • аналітика даних
  • управління базами даних
  • наукові обчислення
  • веб-збирання

І, звісно, машинне навчання – і це лише короткий список застосувань Python. У березні 2021 року в індексі пакетів Python (PyPI) перелічено понад 290 000 програмних пакетів для задоволення різноманітних функціональних потреб.

Хіба це не змушує вас задуматися, як Python і наука про дані можуть уживатися разом?

Щоб зрозуміти, як це можливо, ви повинні знати, що Python – модульна мова. Він містить сотні тисяч уже написаних модулів, призначених для роботи в якості розширення його мінімальної основної мови та в тандемі зі складнішими мовами програмування.

Бібліотеки Python, серед яких TensorFlow, Scikit-learn і Pytorch, дають програмістам вибір інструментів для розробки проєктів штучного інтелекту та машинного навчання.

І вам просто необхідно побачити, що Python може зробити з веб-розробкою!

Чому Python ідеальний для машинного навчання

У комп’ютерному світі так багато мов програмування; що ж робить Python таким особливо придатним для машинного навчання?

Спойлер: він простий і легкий у використанні.

У той час як багато мають перевантажений синтаксис, Python чистий, як карпатське джерело, і функціональний, як швейцарський ніж.

Наприклад, якщо ви хочете написати програму, яка б виконувала серію завдань або забезпечувала певний результат на іншій мові програмування, вам потрібно набрати весь код або запозичити з бібліотеки коду та адаптувати його відповідно до ваших потреб. У будь-якому разі, ви будете або писати з нуля, або модифікувати чийсь код.

підтримка
Ми не помилимося, сказавши, що когорта користувачів та адептів Python дуже дружня і завжди готова допомогти початківцям. Поспілкуатися з досвідченими пайтоністами можна онлайн або на PyCon-і.Фото: Unsplash

З Python не так. Раніше ми згадували його велику бібліотеку модулів; кожен з модулів написаний для конкретного завдання або серії завдань. Вам потрібно лише пошукати в бібліотеці те, що потрібно, і включити його у свій код.

Деякі мови програмування підходять для єдиної парадигми – дії, логіки, потоку даних або керованої події.

Python підтримує багато парадигм; його можна використовувати в програмах, що вимагають логіки, і для програм керування інтерфейсом прикладного програмування (API).

Крім того, Python є об’єктно-орієнтованим; різні «об'єкти» – це поля даних, змінні та навіть код – взаємодіють один з одним і можуть навіть змінювати базову програму.

Якщо машина навчається, чи не було б краще, щоб вона проявляла певну гнучкість, а не слідувала жорстким, заздалегідь визначеним наборам інструкцій?

Незважаючи на всю свою адаптивність, Python простий. Це добре не лише для програмістів-початківців, які ще не вивчили весь лексикон W3C, це також чудово для новачків-розробників. Лаконічний синтаксис і легка читабельність означають, що вам не потрібно навчати новачків, що долучаються до вашого проєкту уже в процесі , а завдяки його модульній структурі ви просто підключаєте те, що ви хочете, щоб ваша машина робила що треба, або видаляєте чи модифікуєте шмат коду, що машина чогось не робила. І все!

Нарешті, є спільнота Python.

Ми говоримо не лише про всіх пайтоністів — програмістів, захоплених Python, хоча вони є однією з найкращих причин вивчити цю мову програмування. Крім них, мотивованих і захоплених, є ще інша велика підтримка.

Python - це відкритий код; є (віртуальна) купа документації, від людей, які намагалися, але не змогли виконати проект, до високоякісних практичних вказівок та аналізів, а програмісти та інженери програмного забезпечення постійно поповнюють бібліотеку.

Зважаючи на великий каталог PyPI та спеціалістів із Python, які можуть допомогти вам зрозуміти, як отримати від нього максимальну користь, дивно, що ви не думаєте про те, де ще можна використовувати Python... чи вже думаєте?

Вам сподобалась ця стаття? Оцініть її!

5,00 (1 rating(s))
Loading...

Olga Mitronina

Викладачка французької та англійської мов, фанатка української мови і сучасної літератури. Люблю читати, подорожувати і вчити іноземні мови