标签归档:Machine Learning

深度学习之目标检测-YOLO算法(一)

点击量:922

今天我们开始介绍Coursera-Deep Learning第四课卷积神经网络的week3的内容:目标检测,主要内容是YOLO算法。在详细介绍这个算法之前我们先普及一些目标检测的基本知识。

目标定位(Localization)

所谓的检测(Detection)指的是从一张图片中识别出是否存在某个目标,而目标定位(Localization)指的是在识别目标的同时,输出它在图像中的位置。我们知道使用神经网络进行目标检测是很容易的,那么如何进行目标定位呢?很简单,跟目标检测一样,我们不仅可以对图像内容打标签,还可以对它所在的位置打标签,然后通过神经网络训练,定位目标。所以,一个完整的Object Detection应该包括Detection和Localization两部分,结合起来后我们得到以下的label \(y\):

$$
y=\begin{bmatrix}
p_c\\
b_x\\
b_y\\
b_h\\
b_w\\
c_1\\
c_2\\
c_3
\end{bmatrix}
$$

其中,

    [……]

继续阅读

卷积神经网络模型

点击量:283

本文我们开始介绍Coursera-Deep Learning第四课卷积神经网络的week2的内容:深度卷积神经网络模型

上文我们介绍了卷积神经网络的基本原理,但那只是最基本的模型,在此基础上又诞生了很多变种,它们在性能上都比最基本的模型要好,当然也更复杂。今天我们就介绍一些常见的卷积神经网络模型,主要有以下几种:LeNet-5, AlexNet, VGG-16, ResNet(残差网络)和Inception,其中前三者属于经典模型。

  • LeNet-5

    LeNet-5这个模型是由深度学习大神Yann LeCun于1998年在其发表一篇名为Gradient-Based Learning Applied to Document Recognition的论文中被首次提出的,可以说LeCun大神是CNN的开山鼻祖了,也有人称之为卷积网络之父。LeNet-5的名字就取自于LeCun,而5表示这个模型一共有5层,分别是两个卷积层和两个全连接层,还有一个输出层用于分类。他的结构如下:

    Imgur
    他有什么特点呢?

    • 输入图像只有单通道,也就是黑白图片
    • 没有采用padding技术,所以卷积的图像尺寸越[……]

继续阅读

卷积神经网络

点击量:170

从本文开始我将会总结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 Rec[……]

继续阅读

结构化机器学习项目

点击量:172

今天总结下:Coursera-Deep Learning-Course3-Structuring Machine Learning Projects的内容,因为这节课里面有好多概念性的东西,不是很实用,因此跳过了很多。

Mismatched Data Distribution Problem

我们在之前的文章里说到dev和test set的data distribution必须一样,这里说的Mismatched Data Distribution,指的是training set和dev/test的数据来源(data distribution)不一样,而以下讨论的几个问题都是基于这个假设的。
先来看一个很常见的应用:

开发一个供用户在手机端使用的识别猫的服务,也就是用户通过手机上传猫的图片到服务器,然后通过训练好的模型来判定这张图片是否是一只猫。

这是一个很普通的应用,但它却存在一个问题:我们在训练时不可能获得大量的来自于用户自己上传的图片数据(移动端),所以这些训练数据只能通过爬虫从网上下载。这样一来,就导致了training set和dev/test的来源不一致的问题[……]

继续阅读

神经网络中的激活函数

点击量:153

本文主要介绍神经网络中几种常见的激活函数:Sigmoid, Tanh, ReLUSoftmax

Sigmoid

这个应该是我们最熟悉的激活函数了,在处理二元分类任务时经常用到,它的公式是:

$$
f(x)=\frac{1}{1+e^{-x}}
$$

它的函数图像如下:
image

TanH

在Sigmoid的基础上做一个变形,把曲线整体下拉0.5个单位(经过原点)就得到TanH,它的公式是:

$$
{\displaystyle f(x)=\tanh(x)={\frac {2}{1+e^{-2x}}}-1}
$$

它的函数图像如下:
Imgur

ReLU

我们知道Sigmoid在早期的机器学习中使用非常多,但是在深度神经网络中却被舍弃了,主要有两个原因:

  • 容易出现梯度消失问题
    因为它越远离原点处,曲线越平缓,导数也就会接近于0。这样在进行反向传播时,由于连乘效应很可能会导致梯度消失。
  • 激活函数计算量略大,涉及到除法和幂计算

后来一种新的激活函数ReLU在AlexNet中被提出,解决了上述问题,也就此成为了深度学习中最常用的激活函数。ReLU,即线性整流函数(Rectifie[……]

继续阅读