Название выглядит как противоречивое утверждение. Если машина может учиться, почему мы должны учиться машинному обучению? Если мы хотим писать код, почему мы можем кодировать, не изучая кодирование?

Искусственный интеллект пятого поколения

Почему мы все еще должны изучать машинное обучение? Это связано с тем, что пока искусственное обучение находится в четвертом поколении (Yiu, 2019). Мы начали с 1-го поколения, ориентированного на автоматизацию, на 4-е поколение, которое делает упор на машинное обучение. Эти два подхода прямо противоположны. Автоматизация требует жесткой инструкции (правил), предоставляемой программистом. Машинное обучение, напротив, пытается определить правила на основе опыта (обучения) (рис. 1). Например, на прошлой неделе мы пытались научить компьютер различать двух людей, анализируя их фотографии (Yiu, 2021). Однако нам все еще нужно взять на себя инициативу, чтобы научить машину чему-то учиться, чтобы она могла выполнять задачу. Искусственный интеллект 5-го поколения — это самообучающаяся машина. Это больше похоже на человеческого ребенка, который может учиться сам, даже если его родители не тренируются. Роботы сейчас пытаются учиться сами. Когда 5-е поколение ИИ сможет стать успешным, нам больше не придется изучать машинное обучение.

Программирование без обучения кодированию

В нынешнем 4-м поколении искусственного интеллекта у нас есть 4 уровня участия. Верхний уровень предназначен для обучения машины путем обучения на основе опыта. В нашей предыдущей статье, когда мы предоставили компьютеру много фотографий, чтобы научиться различать двух людей, мы тренируем его, предоставляя опыт. Это не требует никакого кодирования, так как программисты из Teachable Machine подготовили для нас удобные приложения для обучения.

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

Затем третий и четвертый уровни предназначены для изучения кодирования и / или машинного кода, чтобы непосредственно инструктировать машину с помощью алгоритма обучения. Но тогда это требует изучения языков программирования, таких как Python, и статистических концепций, таких как линейная регрессия и логит-регрессия. На самом деле, Python также можно рассматривать как язык, использующий множество библиотек машинных кодов для управления машиной.

Совместная работа Google

Google предоставил нам удобный интерфейс под названием Colab для запуска библиотек кодирования для машинного обучения. При условии, что у нас может быть достаточно библиотек, которые мы можем легко комбинировать и адаптировать, тогда мы можем кодировать, не изучая кодирование.

Например, в нашем предыдущем упражнении мы использовали приложения, чтобы научить компьютер распознавать людей. Если вы хотите узнать, как кодирование может выполнять этот процесс, вот упрощенная версия комбинации нескольких библиотек кодирования, которые могут научить машину различать лошадь и человека путем анализа фотографий на платформе Google Colab (Colab, 2020 г.). : https://youtu.be/0kYIZE8Gl90).

Когда вы входите в платформу Colab (рис. 2), она предоставляет интерфейс для запуска кода Python в Google Cloud и написания текста между кодами. Если вы откроете эту библиотеку Lab5 Использование сверток со сложными изображениями, первая библиотека — это коды Python для использования библиотек операционной системы (ОС), дающие вам доступ к файловой системе, и библиотека zipfile, позволяющая распаковать данные. . В тексте объясняется, что такое коды, но нам не нужно понимать, что это такое, просто нажмите черный кружок в левой части блока, он запустит библиотеки для загрузки и извлечения zip-файла с фотографиями лошади и человека. из базового каталога /tmp/horse-or-human

Каждый блок кодирования можно рассматривать как библиотеку Python, выполняющую различные функции. Например, в верхнем блоке на рисунке 3 показано, как импортировать tensorflow как tf, который является платформой Google для кодирования машинного обучения. Затем во втором блоке показано, как использовать tf.keras для обучения компьютера классификации фотографий. Keras — это API глубокого обучения, написанный на Python и работающий поверх платформы машинного обучения TensorFlow. Поскольку в этой статье мы не будем говорить о кодировании, вы можете запустить библиотеки, щелкнув [ ] в верхнем левом углу каждого блока.

Введение в библиотеки Colab

Если вы хотите знать, как адаптировать библиотеки под свои цели, возможно, вам придется изучить Colab с самого начала. Вот самое простое введение в кодирование Colab — запуск простой регрессии для предсказания Y из линейного полинома X.

Например, если мы предоставляем несколько пар X и Y, чтобы научить компьютер предсказывать Y, давая X, то это может быть сделано с помощью однослойной искусственной нейронной сети (что эквивалентно простой регрессии). Давайте подробно рассмотрим, как это сделать в Colab. [Также подготовлен Youtube https://youtu.be/sCGuMx_5QNs]

Пример 1. Простая регрессия: предсказание Y по X

По следующей ссылке («Привет, мир» машинного обучения) представлен полный набор кодов Python для простой регрессии и их пояснения. Он также предоставляет некоторую справочную информацию о Google Colab.



Поздоровайтесь с «Привет, мир машинного обучения
В этой лаборатории кода вы изучите базовый Привет, мир машинного обучения, где вместо явного программирования правила в…developers.google.com»



Но если мы не хотим знать, что делают коды, то для достижения цели требуется всего 6 библиотек (блоков) кодов Python, как показано на рисунке 4.

Первый блок просто импортирует необходимые инструменты, такие как Tensorflow и Keras.

Второй блок определяет модель как однослойную нейронную сеть (т. е. простую регрессию).

Третий блок определяет оптимизатор и функцию потерь.

4-й блок предоставляет данные (пары X-Y).

5-й блок обучает компьютер и

6-й блок проверяет его с новым X, чтобы предсказать Y.

После запуска всех 6 библиотек он предсказывает Y=209, когда X=100. Поскольку мы знаем, что полиномиальное уравнение имеет вид Y=3X+1, предсказание неверно. Причина в том, что мы предоставляем очень мало пар данных для обучения, а периоды обучения малы.

Если вы сравните 6 блоков кода на рис. 4 с кодом на сайте Google, вы обнаружите, что я намеренно немного изменил код, чтобы показать вам, как адаптировать код для наших целей, не обучаясь кодированию. Например, я меняю имя модели с model на model1, количество пар данных меньше, а количество эпох также уменьшено до 50. Вы можете попробовать заменить xs и ys своим собственным набором данных, скажем, Y= 0,5X+13, т.е. (1,13,5), (2,14), (3,14,5), (4, 15), …, посмотрите, каким будет результат, когда X=100.

Другие библиотеки

Если мы не хотим учиться программировать, то должно быть достаточно большое количество существующих библиотек, чтобы мы могли их комбинировать и адаптировать для достижения наших целей. Разработчикам может потребоваться гораздо больше времени, чтобы создать больше библиотек и предоставить более удобный интерфейс для адаптации библиотек к различным целям. Вы можете помочь в разработке библиотек и интерфейса. Сейчас в Colab и Github довольно много библиотек, вы также можете внести свой вклад в их создание.

Вот еще два примера для справки. Один — для распознавания одежды по фотографиям, а другой — для множественной регрессии прогнозирования цен на жилье.

Пример 2: Классификация: Распознать объект по фотографии



Пример 3: Множественная регрессия: прогнозирование цен на жилье по атрибутам



использованная литература

Colab (2020) Основы машинного обучения: выпуск № 5 — Классификация изображений реального мира, 21 мая. https://youtu.be/0kYIZE8Gl90

Ю, С.Ю. (2019) От автоматизации к машинному обучению, Medium, 4 января. https://ecyy.medium.com/from-automation-to-machine-learning-c61fefe483f5

Ю, С.Ю. (2021) Learning Machine Learning — Training People to Train a Machine, Medium, 2 февраля. https://ecyy.medium.com/learning-machine-learning-7e273c1a4728