Введение
Глубокое обучение — это новая область исследований в области машинного обучения, целью которой является создание и моделирование нейронной сети человеческого мозга для аналитического обучения, которое имитирует механизм человеческого мозга для интерпретации данных, таких как изображения, звуки и тексты.Сходства и различия между введением в алгоритмы и машинным обучением
Та же точка: Это все ввод, расчет и результат.
разница:
Введение в алгоритмы:
Возьмем f(x)=wНапример, x на самом деле является процессом искусственного задания w. Но x — это дискретная переменная, а не непрерывная переменная, иначе это школьная математическая задача.
Нейронные сети
Нейронная сеть — это тип машинного обучения, который соединяет множество отдельных «нейронов» вместе, так что выход одного «нейрона» может быть входом другого «нейрона».Как правило, модель нейронной сети с более чем 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/…
Каковы существенные сходства и различия между алгоритмом машинного обучения и алгоритмом в обычном «Введении в алгоритмы»?
В чем разница между искусственным интеллектом, машинным обучением и глубоким обучением?
Как просто и интересно объяснить, что такое нейронная сеть?
Объясните глубокие вещи простым способом - метод градиентного спуска и его реализация
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 на уровне символов) - подробная статья и реализация тензорного потока
Серия Data Mining (10) — реализация алгоритмов сверточной нейронной сети