
Когда дело доходит до ИИ, люди восхищаются тем, что они могут сделать с помощью машинного обучения. Но большинство людей, которые регистрируются на такие курсы, как «Начало работы с машинным обучением» или «Введение в ИИ», не переходят дальше на следующий уровень. Но это не относится к другим курсам по веб-разработке или разработке приложений. Потому что там они могут увидеть свой прогресс или, по крайней мере, в конце курса у них есть что-то (приложение или веб-сайт), что они могут показать другим или добавить в свое резюме. Но после курса машинного обучения они получают некоторые из различных стратегий, используемых в машинном обучении, и некоторые ключевые термины, такие как линейная регрессия, градиентный спуск и т. Д.

Все это полезно для вас и обязательно. Но если вы похожи на меня и любите учиться на практике, то эта статья для вас.
Некоторые основы,
Искусственный интеллект ›Машинное обучение› Глубокое обучение
AI - это надмножество ML и DL.
ML - это надмножество DL.
Этого достаточно, основы у вас есть.
Некоторые промежуточные,
Мы узнаем о нейронной сети, которая относится к глубокому обучению.

- Нейронная сеть - это не что иное, как набор взаимосвязанных нейронов.
- Вы даете входную дату + выходные данные (данные обучения) через входной слой.
- Машина находит взаимосвязь между входом и выходом в скрытых слоях (вот где происходит волшебство).
- Затем, когда вы даете новый ввод (который неизвестен машине), он прогнозирует вывод, используя отношение из обучающих данных. Выходной слой дает нам результат.
МОЙ БОГ! Вы уже многому научились.
А теперь давайте что-нибудь построим
Набор 1: -1, 0, 1, 2, 3, 4.
Набор 2: 3, 4, 5, 6, 7, 8.
1. Можете ли вы найти связь между набором 1 и набором 2?
Ответ: Добавление 4 к набору 1 дает набор 2
2. Каким будет значение набора 2, если элемент набора 1 равен 10?
Ответ: Все просто: 10 + 4 = 14.
Теперь это именно то, что мы собираемся сделать. Мы собираемся заставить машину предсказывать значения набора 2. Но мы не собираемся сообщать машине соотношение между числами (т.е. набор 1 + 4 = набор 2). Пусть скрытый слой узнает об этом.
Прежде чем мы начнем кодировать. Вам необходимо установить в вашей системе следующее.
- Python 3
- Tensorflow
- NumPy
Если вы не знаете, как его установить, погуглите.
Приступим к кодированию…
Вся эта программа занимает менее 10 строк кода :-)
Шаг 1: Импортируйте необходимые файлы.
Мы будем использовать TensorFlow и NumPy.
import tensorflow as tf import numpy as np from tensorflow import keras
Шаг 2: - Создание модели.
Здесь мы определяем, как наша модель будет структурирована. Сколько слоев нам нужно? Сколько нейронов должно быть в каждом слое? Как входные данные и как будут выглядеть? Это данные 2D или 3D?
Ответы на эти вопросы можно найти здесь.
В нашем случае мы используем один слой и один нейрон для нашей модели, а входные данные являются последовательными.
model = keras.Sequential([keras.layers.Dense(units=1)])
Мы используем keras.Sequential, поскольку наши данные являются числами и являются последовательными.
keras.layers.Dense используется для создания одного слоя.
Рис. 1.0 имеет 3 слоя (три входных слоя, четыре скрытых слоя и два выходных слоя)
units = 1 означает количество нейронов, которое мы хотим в слое.
Рис. 1.0 имеет 3 блока на входном слое.
Шаг 3: - Настройка оптимизаторов и функций потерь.
model.compile(optimizer=’sgd’,loss=’mean_squared_error’)
Оптимизаторы. Оптимизаторы - это алгоритмы, которые используются для определения взаимосвязи между данными. Для разных вариантов использования доступны разные типы оптимизаторов. В нашем случае мы используем алгоритм sgd (стохастический градиентный спуск).
Функция потерь - это метод оценки того, насколько хорошо конкретный алгоритм моделирует заданные данные. В нашем случае мы используем mean_squared_error.
Шаг 4: предоставление данных для обучения
В нашем случае набор 1 - это входные данные, а набор 2 - выходные данные.
Мы используем массив NumPy для передачи данных обучения. Пусть x будет входом, а y будет выходом.
x = np.array([-1,0,1,2,3,4],dtype=int) y = np.array([3,4,5,6,7,8],dtype=int)
dtype - это тип данных.
Шаг 5: Обучение данных.
model.fit(x,y,epochs=500)
model.fit используется для обучения данных. Здесь мы даем обучающие данные x и y.
ecpochs = 500 используется для определения того, сколько раз мы хотим, чтобы модель тренировалась на заданных данных. Здесь мы хотим, чтобы его тренировали 500 раз.
Шаг 6: Тестирование нашей модели
print(model.predict([10]))
model.predict запустит модель с новыми данными, которых нет в обучающем наборе. В нашем случае мы будем использовать 10.
Ответ должен быть 10 + 4 = 14.
Но вы получите ответ как 14.045739 (что будет не совсем 14, но будет очень близко к 14).
Причина этой небольшой неточности может быть связана с ограниченным количеством предоставленных нами обучающих данных (больше данных = больше точности *, применяются условия).
Полный код
import tensorflow as tf import numpy as np from tensorflow import keras model = keras.Sequential([keras.layers.Dense(units=1)]) model.compile(optimizer=’sgd’,loss=’mean_squared_error’) xs = np.array([-1,0,1,2,3,4],dtype=int) ys = np.array([3,4,5,6,7,8],dtype=int) model.fit(xs,ys,epochs=500) print(model.predict([10]))
Надеюсь, это было полезно.
Я планирую начать серию статей по машинному обучению. Пожалуйста, оставьте свои комментарии ниже и сообщите мне, хотите ли вы еще.