本文是Coursera课程Neural Networks and Deep Learning的学习笔记,课程本身深入浅出,质量非常高,这里主要做思路整理和知识备忘,很多模块还需要自己扩展。
什么是深度学习(Deep Learning)?简单来说,深度学习是机器学习的一个子领域,研究受人工神经网络的大脑的结构和功能启发而创造的算法。Wiki上给出的解释则更复杂一点: 深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。
一. 逻辑回归模型
监督学习(Supervised learning): 是一个机器学习中的方法,可以由训练资料中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练资料是由输入物件(通常表示为张量)和预期输出(Label标签层)所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。
逻辑回归算法
逻辑回归算法是一个分类算法,通常用在二元分类中(也可以通过一对多策略实现多类别逻辑回归,用于多元分类),用于估计某种(或多种)事物的可能性,是监督学习的常用算法之一。假设我们要设计一个算法识别某张图片是不是一只猫,逻辑回归算法会输出该图片是猫的概率(由于概率是0-1连续的,因此逻辑回归中有回归二字,但它最终是为了解决分类问题的)。我们可以将图片的RGB通道放入到一个输入向量中,比如图片大小为100*100,则最终得到长度为3*100*100的输入向量x,即x(n)=30000(每张图片的特征维度)。逻辑回归算法对于每个输入向量$x^i$,都应该计算得到对应的预估值$y^i$([0,1])。现在来看看如何设计这个算法,最简单的函数是: ,其中w为维度为n的列向量,我们用$ \hat{y} $来表示算法得到的预估值,以和训练数据中的已知结果$y$区分,这是典型的线性回归函数(将多维特征映射为单个线性连续值),在该函数中,$y$取值为负无穷到正无穷,而我们期望的$y$取值为[0,1]。因此我们还需要进行一次转换,一个经典的非线性转换函数是sigmoid函数 $y = \sigma(z) = \frac{1}{(1+e^{-z})}$,其中 $z = w.T*x + b$,这样我们的到$y$值始终限定在0($z$无穷小时)到1($z$无穷大时)之间。现在我们有了一个最简单的逻辑回归算法模型,接下来的任务就是根据训练集的特征和标签,得到最佳的$w$和$b$参数,使得该算法在测试集上的预测准确率变高。