标签归档:Deep Learning

卷积神经网络

从本文开始我将会总结Coursera-Deep Learning第四课的内容:Convolutional Neural Networks,卷积神经网络。

引言

先看下这门课的大纲,分为以下四个部分:

  • Week1: Foundations of Convolutional Neural Networks
  • Week2: Deep convolutional models: Case Studies
  • Week3: Object detection
  • Week4: Special applications: Face recognition & Neural style transfer

看了大纲之后,与其说这门课讲的是卷积神经网络,不如说是在讲深度学习在计算机视觉(Computer Vision)中的应用。因为CNN的知识并没有那么多,一周时间的讲解就足够了。而后面的三周课则会先介绍几个当下比较流行的卷积神经网络模型,比如AlexNet,VGG,ResNet等。最后两周则会介绍如何通过一些高效算法去实现目标检测(Object Detection)和人脸识别(Face[……]

继续阅读

机器学习-损失函数

一般来说,我们在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化。在机器学习中,这种函数被称为损失函数(loss function)、代价函数(cost function)或者目标函数(objective function)。本文主要介绍以下三种最常见的loss function。

Square Loss

全称应该是Mean Squared Error,也就是最小二乘法,这个是最简单的,它公式如下:

$$
\ell = \frac{1}{m} \sum_{i=1}^{m}(y_i – \hat{y_i})^2
$$

TensorFlow函数:tf.losses.mean_squared_error

Hinge loss

主要用于SVM,它的公式如下:

$$
\ell= \max(0, 1- \hat{y} \cdot y)
$$
其中,\(y\)是label,\(\hat{y}\)是预测值,两者的取值范围都是\(y,\hat{y} \in \{-1,1\}\)。观察上述公式[……]

继续阅读

深度学习-调参和优化(二)

本文介绍Coursera-Deep Learning-Course2-Week2:Optimization algorithms的内容:深度学习的优化,主要是如何加速梯度下降。

梯度下降的优化

这部分主要介绍了三种梯度下降方法:Batch Gradient Descent, Mini-batch Gradient Descent和Stochastic Gradient Descent,这些内容已经在之前的文章(大规模机器学习)中已经解释的很清楚了,本文不再具体阐述。
先回顾下之前的梯度下降公式:
$$
\theta_{j} := \theta_{j} – \alpha \frac{1}{m}\sum_{i=1}^{m}\left ( h_{\theta}\left ( x^{(i)}\right )- y ^{(i)}\right ) x_{j}^{(i)}
$$

上面这个公式代表的是全批量的梯度下降(batch gradient descent),是梯度下降最原始的形式,也就是说梯度每下降一步都要把所有的样本数据算一遍,这个代价是非常昂贵的,如果m是百万级别的话(实际工程中很常[……]

继续阅读

深度学习-调参和优化(一)

从今天开始,我们总结Coursera深度学习第二课:Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization,主要是调参和优化,这一块儿的内容是非常重要的,里面讲解了很多深度学习应用的经验法则,非常有参考价值。今天我们主要覆盖week1的内容:Week1 Practical aspects of Deep Learning。

Setting up your Machine Learning Application

数据集的划分(Train/Dev/Test)

一般来说,完整地训练一个ML应用需要把数据集划分三块:

  • 训练集(train)
  • 交叉验证集(cross validation)
    Cross Validation又被称为Dev Set,这部分数据集用于确定最终的模型。在实际场景中,我们往往会去尝试多种不同的hyperparameters,那么如何评判这些不同hyperparameters配置的模型的性能优劣呢?我们把不同的模型放到CV上跑一边,选择性能最好的那个[……]

    继续阅读

神经网络和深度学习

引言

2017年8月8日,吴恩达正式发布了Deepleanring.ai,一个发布在Coursera上的深度学习系列课程Deep Learning Specialization,希望将人工智能时代的基础知识传播到更多人身边。网上对这门课的评价很高,算是深度学习的必备课程了,所以想入门深度学习的同学千万不要错过。但在enroll这门课之前,个人强烈建议先学完同样由Andrew Ng教的Machine Learning,这门课才是最基础的机器学习课程,里面包含了很多最基本,最重要的思想和概念。学完了这门课再来上这门深度学习会感觉比较轻松吧,整体难度并不大,所以在课程发布的前几周我就全部学完了(那时候只发布了前三课),主要是因为课程开放的前一周是免费的,所以学的非常快。但同时也很仓促,也因此没有做笔记。导致的结果就是现在你再问我这些课程到底讲了什么,我已经忘得差不多了。现在又得重新花时间去学习,这是很浪费时间的。所以在学习新知识的过程中,适当地记录和梳理是非常有必要的。从今天开始,我会把这门深度学习课程的学习笔记整理到博客里,并不会面面俱到,只会记录于我而言很重要的知识点。

Deep L[……]

继续阅读