Простое для понимания глубокое обучение

TensorFlow

Введение

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

Сходства и различия между введением в алгоритмы и машинным обучением

Та же точка: Это все ввод, расчет и результат.
разница:
Введение в алгоритмы:
Возьмем f(x)=wНапример, x на самом деле является процессом искусственного задания w. Но x — это дискретная переменная, а не непрерывная переменная, иначе это школьная математическая задача.

машинное обучение: Возьмем f(x)=wНапример, x — это процесс оптимизации w с помощью обучающего набора (x, y).

Нейронные сети

Нейронная сеть — это тип машинного обучения, который соединяет множество отдельных «нейронов» вместе, так что выход одного «нейрона» может быть входом другого «нейрона».
Как правило, модель нейронной сети с более чем 8 слоями называется глубоким обучением.
Глубокое обучение решает проблему исчезающих градиентов и локальных оптимальных решений после многократного прохода неглубоких нейронных сетей.

Два основных типа глубокого обучения

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

Неконтролируемое обучение:
Типичным примером обучения без учителя является кластеризация. Цель кластеризации состоит в том, чтобы сгруппировать похожие вещи вместе, и нам все равно, что это за класс.

Основы нейронной сети

Примечание. Z и a второго и третьего слоев не совпадают.
входить: весь обучающий набор представлен в виде:
n представляет количество выборок, а i представляет параметр в выборке. Ниже приведен пример сокращенного образца:
вывод:
Веса: Случайная инициализация, нейронная сеть фактически вычисляет лучшие веса.
Предвзятость:

Процесс расчета: например, второй слой

функция активации: Например, когда функция активации является сигмовидной, второй слой

Вышепрямое распространениеСодержание. После того, как модель получена, остается только произвести расчет до этого шага.

Обратное распространение: градиентный спуск обновляет веса w. где α – размер шага.

Функция потери: определяется для одной выборки и вычисляет ошибку выборки. В качестве примера возьмем функцию потери среднеквадратичной ошибки:

Функция стоимости: определяется на всей обучающей выборке и является средним значением всех ошибок выборки, то есть средним значением функции потерь.

Прилагается, матричные операции

Если все расчетные процессы будут в таком виде, расчет будет очень сложным.

Поэтому матричные операции широко используются в нейронных сетях.

Таким образом, приведенный выше расчет может стать (в отличие от процесса расчета генерации строк, в тензорном потоке есть механизм трансляции):

Tensorflow

Установить

среда PythonКомплексная установка Anaconda

ideПичарм и др.

Настроить Цинхуаюань

conda config --add channels Зеркала. Дыхание. Его четырехлетний план. Квота. Способность/анаконда/ПК…

conda config --set show_channel_urls yes

Создайте среду Python

conda create -n tensorflow python = номер версии

активировать тензорный поток (выйти, деактивировать тензорный поток)

Источник pip Tsinghua для установки тензорного потока

pip install -i pypi.tuna.tsinghua.edu.cn/simple tensorflow

Или установите источники пипсов глобально. C:\Users\username\pip\pip.ini. По умолчанию ни папка pip, ни pip.ini не создаются. Создайте ее самостоятельно. Добавьте в pip следующее содержимое.

[global]

index-url = pypi.tuna.tsinghua.edu.cn/simple

Используйте pip install tensorflow

кейс

tensorflow mnist

from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
 
 
# MNIST数据存放的路径
file = "./MNIST"
 
# 导入数据
mnist = input_data.read_data_sets(file, one_hot=True)
 
# 模型的输入和输出
x = tf.placeholder(tf.float32, shape=[None, 784])
y_ = tf.placeholder(tf.float32, shape=[None, 10])
 
# 模型的权重和偏移量
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
 
# 创建Session
sess = tf.InteractiveSession()
# 初始化权重变量
sess.run(tf.global_variables_initializer())
 
# SoftMax激活函数
y = tf.nn.softmax(tf.matmul(x, W) + b)
 
# 交叉熵损失函数
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
 
# 梯度下降法训练
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
for i in range(1000):
    batch = mnist.train.next_batch(50)
    train_step.run(feed_dict={x: batch[0], y_: batch[1]})
 
 
# 测试
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_:mnist.test.labels}))

Ссылка на ссылку:Первый урок искусственного интеллекта, который дал вам Эндрю Нг

Молчание OC.study.163.com/smart spec/…

Каковы существенные сходства и различия между алгоритмом машинного обучения и алгоритмом в обычном «Введении в алгоритмы»?

Ууху. Call.com/question/24…

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

Ууху. Call.com/question/57…

Как просто и интересно объяснить, что такое нейронная сеть?

Ууху. Call.com/question/22…

Объясните глубокие вещи простым способом - метод градиентного спуска и его реализация

woohoo.brief.com/afraid/from 7 oh 642877…

Алгоритм углубленного градиентного спуска (Gradient Descent)

woo woo woo.cn blog on.com/oh oh oh you/afraid/4947…

Резюме градиентного спуска (написал градиентный спуск и градиентный подъем)

woo woo woo.cn блог на.com/pi этого человека/afraid/59…

Статья для понимания метода обратного распространения в нейронных сетях — BackPropagation

Блог woohoo.cn на.com/Charlotte77…

Сверточная нейронная сеть на основе символов для классификации текста (CNN на уровне символов) - подробная статья и реализация тензорного потока

blog.CSDN.net/Irving_Station…

Серия Data Mining (10) — реализация алгоритмов сверточной нейронной сети