PyTorch 第一周
一、深度学习初见
1.1 深度学习框架简介
1.1.1 PyTorch的发展
2002年Torch->2011年Torch7
Lua语言制约了Torch发展
PyTorch于2018.12发布正式版本,采用CAFFE2后端
本教程使用的是2019.5发布的1.1
1.1.2 PyTorch与同类框架
Google:theano -> Tensorflow1 -> Tensorflow2 + Keras
Facebook:Torch7 -> Caffe -> PyTorch + Caffe2
Amazon : MXNet
Microsoft : CNTK
Chainer
tensorflow是静态图优先的而PyTorch是动态图优先的
总结:
对于研究员,推荐使用PyTorch
对于工程师,推荐使用TensorFlow2
二、环境配置
Python 3.7 + Anaconda 5.3.1
CUDA 10.0
Pycharm Community
三、回归问题
3.1 简单回归问题
3.1.1 梯度下降法
loss:x2 * sin(x)
导数:2xsinx + x2cosx
x’ = x - α * f’(x)
α:学习率,控制梯度下降速度,一般设置为0.0001或0.01
由于噪声的存在,loss可以转化为(W * X + b - y)2的形式,当此loss函数取得极小值时,参数W和b即为所求参数
3.1.2 线性回归、逻辑回归、分类问题
线性回归的结果y∈R
逻辑回归由于加了激活函数的限制,将最终结果限制到了[0, 1]中,变为一个概率问题
分类问题特点:每个结果的概率加起来等于1
回归问题实验代码
import numpy as np
def compute_error_for_line_given_points(b, w, points):
totalError = 0
for i in range(0, len(points)):
x = points[i, 0]
y = points[i, 1