• 深度学习小计


    深度学习

    这几天实验室招新,断断续续也学了差不多两周。
    记录下来,以后再看肯定会是有很多错误。
    4.29:刚出了招新招录进去了。

    环境配置

    安装anaconda,然后在里面下载python,jupyter,各种包。

    这里,anaconda,python,jupyter是工具,numpy,pytorch,matplotlib是各种包。

    1.Python:编程语言。

    2.PyTorch 是一个Python机器学习库

    3.matplotlib 画图的包,分析数据。

    4.NumPy(Numerical Python)是Python的一种开源的数值计算扩展

    5.《动手学深度学习》 ,b站有号<李沐>

    python

    稍微看一下简单语法和一些类型就ok,对python的掌握没啥要求。
    一些不会的语法,比如yield可以遇到再学。

    jupyter

    在conda里面启动,输入jupyter notebook

    jupyter快捷键

    shift+tab 得到提示,这个可能会挺有用
    Esc进入命令模式(意会即可)
    	- a进入上一个
    	- b进入下一个
    	- dd 删除本单元
    	- m 本单元进入markdown模式
    	- y 本单元进入代码模式
    shift+enter 运行本单元,新建一个单元进入
    ctrl+enter 运行本单元
    

    pytorch

    里面集成了很多深度学习的模型。
    backward自动求梯度

    深度学习

    概念

    书中引入了一个预测房价的问题,影响房价的因素只有面积和房龄,这里的y就是预测值,w1w2是两个权重,x1x2影响因素。

    \[模型:\hat{y} = w_{1}x_1+w_2x_2+b \]

    怎么得到w和b?给他数据自己学习。
    一开始的w和b都是不好的,然后预测结束后,根据你预测的结果和真实的结果对比,进而调整你的w和b,使他达到一个好的效果,然后就得到了一个好的模型,就可以预测你想要预测的地方的房价了。
    怎么调整,就好像一块山地,你要下山到最低点,每一步都走最陡峭的地方,当然这样可能会走到一个盆地,实现的时候可以调整,但整体是这样的。

    定义模型

    就像是上面的\(\hat{y}\)

    训练模型

    多次 预测数据,调整参数,来达到我们想要的理想模型。

    损失函数

    衡量预测数据与真实数据的误差。

    优化算法

    选择怎么“下山”,怎么调整参数。可以让下山的步伐变大变小。调整步伐的参数叫学习率。

    预测模型

    带入数据到模型种

    softmax

    一张图片怎么学习,把他们的每一个像素离散开来,展开成一行数字。
    又引入了一个问题,给你一个2*2的图片,让你判断是猫还是狗。
    还是四个特征值x1,x2,x3,x4,叫做输入层。
    输出层有两个o1,o2,分别代表猫狗。
    模型还是那样。

    \[o_1=w_11x_1+w_12x_2+w_13x_3+w_14x_4 \]

    \[o_2=w_21x_1+w_22x_2+w_23x_3+w_24x_4 \]

    预测值越大越有可能是那种动物,但我想得到概率,进行softmax运算。
    \(P_1=\frac{exp{o_1}}{\sum_{i=1}^{2}exp{o_i}}\)
    softmax也常用于分类问题。

    多层感知机

    顾名思义,不单单只是输入层和输出层了。
    我们中间可以加很多层。
    比如输入层是3个,我们第一层编程四个节点,下一层五个,在下一层10个,最后两个,都是可以的。
    但是,虽然这么多层,但是每一次都是线性变化,最后结果还是类似一层。需要引入激活函数进行非线性变化,比如relu,sigmoid。

    卷积和一些模型。

    卷积来提取相邻元素的特征值。

    LeNet

    算是最基本的CNN了。卷积层、激化层、池化层

    RestNet

    传统CNN随着网络层数的增加,网络会发生了退化。
    而引入残差块后,网络可以达到很深,网络的效果也随之变好。

    普通网络\(y=f(x)\)

    残差网络:\(y=f(x)+x\)

    RNN

    RNN引入了隐藏状态解决了语言的时序问题,但记忆属于短期记忆,只有最近的输入对当前的输出影响大,也容易发生梯度衰减。我觉得n元语句和他差不多,只不过他太绝对了。
    每一个隐藏状态都是由上一个隐藏状态和输入值x的来的。

    \[H_i=w_{1i}H_{i-1}+w_{2i}X_i+bi \]

    LSTM

    引入了门控制单元和记忆细胞,更加灵活。
    能够通过门的控制长期的记忆和短期的记忆。

    后记

    哈哈,还是太多细节了,单单这么记录还是说不清,以后再开吧。

  • 相关阅读:
    内置函数
    打印进度条
    生成器表达式
    Linux(CentOS7)安装Tomcat (Tomcat+JDK)
    IDEA左侧文件目录不见了,帮你找回来!
    前端插入date类型的数据到数据库
    Java Web制作登录 验证码
    Java使用数据库连接池连接Oracle数据库
    Java Web项目实现写日志功能
    IDEA编写JavaWeb出现乱码,成功解决!
  • 原文地址:https://www.cnblogs.com/dsrdsr/p/16211086.html
Copyright © 2020-2023  润新知