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

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

Некоторые основы,

Искусственный интеллект ›Машинное обучение› Глубокое обучение

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]))

Надеюсь, это было полезно.

Я планирую начать серию статей по машинному обучению. Пожалуйста, оставьте свои комментарии ниже и сообщите мне, хотите ли вы еще.