深度学习
深度学习(Deep Learning, DL)或阶层学习(hierarchical learning)是机器学习的技术和研究领域之一,通过建立具有阶层结构的人工神经网络(Artifitial Neural Networks, ANNs),在计算系统中实现人工智能。由于阶层ANN能够对输入信息进行逐层提取和筛选,因此深度学习具有表征学习(representation learning)能力 ,可以实现端到端的监督学习和非监督学习 。此外,深度学习也可参与构建强化学习(reinforcement learning)系统,形成深度强化学习 。
深度学习开创出众多机器学习方面的实际应用和全面推广人工智慧领域 ,解决了许多任务,看起来有可能实现机器助手的梦想。无人驾驶车、更好的医疗预防服务,甚至是推荐更好看的电影,这些都已实现或在不远的道路上。人工智慧则是处在当下和未来。有了深度学习和机器学习,人工智慧甚至能实现我们一直以来在科幻小说里所想像的状态。
在开始深度学习项目之前,选择一个合适的框架是非常重要的,因为选择一个合适的框架能起到事半功倍的作用。研究者们使用各种不同的框架来达到他们的研究目的,侧面印证出深度学习领域百花齐放。全世界最为流行的深度学习框架有PaddlePaddle、Tensorflow、Caffe、keras·、Theano、MXNet和PyTorch。
pip install tensorflow==2.0.0-alpha0
pip install tensorflow==1.5
pip install keras
https://keras.io/zh/
在
与其他任何深度学习框架相比,Keras 在行业和研究领域的应用率更高(除 TensorFlow 之外,且 Keras API 是 TensorFlow 的官方前端,通过 tf.keras 模块使用)。
Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。
还是来用点求方程入门,生成50个点
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(0,50,50)
y = 3*x +7 + np.random.randn(50) *5 #a = 3 ,b = 7
plt.scatter(x,y)
plt.show()
import keras
model = keras.Sequential() ##顺序模型
from keras import layers
model.add(layers.Dense(1,input_dim=1)) # 输入输出都是一维的
model.summary() # 可以输出层
从图中可以看出输入和输出都是一层吗,而且只有两个参数
model.compile(optimizer='adam',loss='mse')
使用优化算法 adam 和损失函数 mse 均方差
model.fit(x, y, epochs=3000)
epochs 参数是把数据训练3000遍
我们可以看到损失函数已经降到35.24多
model.predict(x)
plt.scatter(x, y, c='r')
plt.plot(x, model.predict(x))
plt.show()