Введение: Разговор с Эндрю Нг (исследователь и преподаватель искусственного интеллекта Femouse) и Лоуренсом Морони (инструктор курса)

Мы изучаем TensorFlow. Фреймворк глубокого обучения для реализации алгоритмов глубокого обучения и машинного обучения с использованием последовательного API Keres. Алгоритмы обучения сложны для написания программы на основах языков программирования, но с помощью Framework, построенного поверх этих основ, мы можем легко написать реализацию алгоритмов обучения и легко протестировать их производительность.

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

Лоуренс Морони: он является защитником разработчиков в Google и работает над Google AI и TensorFlow. Он также написал около 30 книг по программированию, включая научно-фантастические романы. машинное обучение и глубокое обучение с помощью нейронных сетей. Машинное и глубокое обучение или универсальный искусственный интеллект (ИИ) заключается в том, что технические вещи больше не являются техническими, они ограничиваются только индустрией программного обеспечения, но каждая отрасль может понять, что ей нужно, как автоматизировать свои задачи с использованием алгоритмов обучения.

Внедрение алгоритмов обучения в качестве разработчика предоставляет нам новую парадигму программирования с использованием таких фреймворков, как TensorFlow, Pytorch и т. д. Каковы возможности машинного обучения и искусственного интеллекта? Мы учимся, как

В чем разница между традиционными парадигмами программирования и парадигмами машинного обучения и глубокого обучения?

Как узнать функцию $f(X) = Y$ для заданного набора данных ${X = [x1, x2, …], Y = [y1, y2, …]}$

Чтобы получить блокнот курса на GitHub: DeepLearning.AI и клонируйте репозиторий на свой локальный компьютер, используя: git clone https://github.com/deeplearning-ai/tensorflow-1-public. Есть несколько требований для запуска кодов

  1. Загрузите дистрибутив anaconda, создайте среду Conda и установите следующие пакеты:
tensorflow=>2.7.0
scikit-learn
pandas
matplotlib
seaborn
numpy

Вы также можете запустить Google Collaboratory.

Основы машинного обучения

Кодирование — любимый термин разработчиков, используемый для создания приложений путем разбиения требований задач на составные задачи, которые можно закодировать.

  1. Приложение, которое вычисляет биржевую аналитику
  2. Приложение для создания игры
  3. Распознавание активности, такой как ходьба, бег, езда на велосипеде

Традиционные парадигмы программирования:

Парадигмы программирования машинного обучения:

Основы создания простой нейронной сети для распознавания образов. Нейронная сеть — это расширенная реализация машинного обучения, которое мы называем глубоким обучением. Машинное обучение заключается в том, чтобы заставить компьютеры изучать закономерности в этих данных и делать различия в соответствии с нашими потребностями.

Hello World глубокого обучения с нейронными сетями

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

def function(x):
     y = (3 * x) + 34
     return y

Q-01 : Как обучить нашу нейронную сеть, используя наши данные, чтобы она могла самостоятельно делать прогнозы на невидимых данных. например: $X = [x1, x2, …xn]$ с метками $Y = [y1, y2, y3, … yn]$ таким образом, чтобы можно было узнать взаимосвязь между $X$ и $Y$ как $Y = F(X)$.

Шаг 01: Импорт важных модулей

  • Мы собираемся импортировать tensorflow as tf и его подмодуль под названием karas sequence API для построения нейронной сети в виде последовательности слоев: from tensorflow import keras.
  • Импортируйте библиотеку числовых вычислений под названием numpy для обработки данных в виде массива, который обрабатывается только процессором, а не графическим процессором: import numpy as np
# import all importent libraries
import tensorflow as tf
import numpy as np
from tensorflow import keras

Шаг 02: Определение и компиляция нейронной сети

  • Мы собираемся создать однослойную нейронную сеть с одним нейроном, входная форма также является одним значением. Мы используем функцию Dense(units='number of neurons', input_shap='dimension of input') для создания слоя.
  • Затем представьте этот слой как последовательный, чтобы мы могли построить модель, используя функцию Sequential().
  • Использование функции Compile(optimizer='', loss='') таким образом, что для ее оптимизации требуется функция стоимости с использованием функции оптимизации, называемой алгоритмами стохастического градиентного спуска.
# Build a Artificial neural layer with single neuron
# Dense() used to define a layer of connected neurons
# Here Single layer: Dense = 1
# Units = 1 Single neuron
# shape dimention = 1dim tensor
layer = keras.layers.Dense(units=1, input_shape=[1])

# to define successive layer using the sequential()
# feed the neurons layer into a sequential layer model
model = tf.keras.Sequential([layer])

# Optimizer : Stochastic Gradient Descents and Loss Function : Mean Square Errors
# Compile the model using optimizer algorith with cost function 
model.compile(optimizer='sgd', loss='mean_squared_error')

Шаг 03: Предоставление набора данных в соответствующей форме

  • Наша модель представляет собой регрессионную модель, поэтому она может обрабатывать данные о реальных значениях. Поэтому мы создаем массив numpy и загружаем его метками в нашу модель, чтобы узнать взаимосвязь между $X$ и $Y$.
# Create data that can be feedable into our model with it's label values
xs = np.array([-1.0,  0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)

Шаг 04: Обучение нашей модели нейронной сети

  • Использование fit() для обучения связи между $X$ и $Y$
# Training of Model take place using the fit() function 
# Feed data init and define how many time our training loop must run i.e epochs = "each epoch makes a guess and lean it how good or bad guess it make and again make better guess"
# it knows the correct values of our model then compare how good or bad our guess is !
model.fit(xs, ys, epochs=600)

Шаг 05: Сделать прогноз с использованием обученной модели

# After training model it will able to make prediction using predict() function
# give some random value to make prediction what model has learned
print(model.predict([10.0]))

# Print the weight associalted with layer
print("Layer variables look like this: {}".format(layer.get_weights()))

Заключение

Почему наш прогноз: 18,999971, а наше истинное значение: 19

поскольку мы обучили нашу модель, используя только ограниченные данные, поэтому она пытается изучить приблизительную функцию прогнозирования с небольшим отклонением от точного значения функции.