LLIS寒假学习(1):纯小白入门动手学深度学习(pytorch版)

首先回顾一下自己在学这门学课时的状态:
大一,计算机系,有C++学习的基础,线性代数学习的基础,python的最基本语法。其次没有任何关于这门学科的基础,所以在探索《动手学深度学习(pytorch版)》的时候,的确遇到了很大的困难。
主要有这么几点:
1.数学原理大致是可以看懂的,但是用代码从零开始实现遇到了困难。
2.函数的语法不是太懂,可能是因为不熟悉python,未知函数学习过程中有些python特别的代码技巧,导致在理解的过程中遇到难以解决的数学上的问题。
3.在最初搭建环境的过程中也比较麻烦,好在有很多的博客、网友、学长学姐的帮助,顺利完成革命的第一步hh。

一、首先提问:什么是深度学习?

在这里插入图片描述
这张图(引用)很好地描述了当下的人工智能,机器学习和深度学习的关系。人工智能的理论是最先提出来的,也是概念最广义的,然后是机器学习,最后是深度学习,这并不是本书的重点,但简单了解一些还是有帮助的,总结:
1.人工智能是一门学科,机器学习是让机器变得更加智能的函数形式(算法),是人工智能的分支,也是实现人工智能的一种手段。
2.深度学习是具有多级表示的表征学习方法,是机器学习的一类。深度学习可以逐级表示越来越抽象的概念或模式。(基于神经网络模型)

二、预备知识与深度学习的基础

1.数据操作
核心就是Tensor(张量),这也是pytorch包独特的魅力所在,基本上在存储,变换,计算的过程中都要用到。
2.梯度
在深度学习解决问题的过程中,需要求得每个目标函数的目标参数,使得每次输入数据,都会得到一个令人满意的输出结果,那么如何评估这个目标参数呢(假设函数形式正确且已给定)?即使用训练数据已经提前给定的结果与预测之后得到的结果进行比较(损失函数),如果相差甚远(损失函数结果较大),则该参数并不令人满意。
接下来需要做的就是调整参数,引入梯度的概念(自行百度),它的本质是一个向量,性质:函数沿着梯度的方向增长最快,而逆着梯度的方向则减小最快。
我们要尽可能减少损失函数的值(求最小值),所以我们需要利用梯度的性质,逆着梯度的方向不断下降,来找到函数的极小值。计算出梯度后,我们就可以根据所求梯度更新目标参数了。(所涉及到的梯度概念,求法,以及学习率,pytorch下的代码实现,将会在之后的博客中提到)
3.预测模型
分为两类:线性回归softmax回归
LLIS寒假学习(1):纯小白入门动手学深度学习(pytorch版)_第1张图片
房价预测:线性回归问题
LLIS寒假学习(1):纯小白入门动手学深度学习(pytorch版)_第2张图片
良性or恶性肿瘤预测:分类问题
线性回归:就像字面理解的那样,我们预测的结果是基于线性的目标函数,因此,线性回归的输出是一个连续值,如:预测房屋价格、气温、销售额等连续值的问题。
softmax回归:与线性回归相对应的概念是分类问题,即输出是一个离散值,如:图像分类,疾病预测等。softmax回归适用于分类问题。
4.实现过程
大致是以下几点:
(1)数据处理:个人认为现实世界中最难得到的就是大量的数据了,现在我们所实现的模型都是基于大量的数据支持,没有大数据就没有深度学习的今天。初始化模型参数:输入、输出个数,各层中所需参数的构造等等。
(2)模型搭建:根据所选问题的类型进行数据可运算化。
(3)训练:正如第2点梯度中介绍的那样,不断调整目标参数来进行模型的训练。
(4)测试:输出错误率,有时也输出训练所需时间。

这次博客就写到这里,很多地方由于是自己写的,可能有不严谨或错误之处,还请各位评论指正!

你可能感兴趣的:(LLIS寒假学习(1):纯小白入门动手学深度学习(pytorch版))