0%

优化算法对于深度学习十分重要。首先,实际中训练一个复杂的深度学习模型可能需要数小时、数日、甚至数周时间。而优化算法的效率直接影响模型训练效率。其次,深刻理解各种优化算法的原理以及其中各参数的意义将可以有助于我们更有针对性地调参,从而使深度学习模型表现地更好。

本篇博文详细介绍深度学习中一些常用的优化算法。

在一个机器学习的问题中,我们会预先定义一个损失函数,然后用优化算法来最小化这个损失函数。在优化中,这样的损失函数通常被称作优化问题的目标函数。依据惯例,优化算法通常只考虑最小化目标函数。任何最大化问题都可以很容易地转化为最小化问题:我们只需把目标函数前面的符号翻转一下。

在机器学习中,优化算法的目标函数通常是一个基于训练数据集的损失函数。因此,优化往往对应降低训练误差。而机器学习的主要目标在于降低泛化误差,例如应用一些应对过拟合的技巧。在本文中,我们只关注优化算法在最小化目标函数上的表现。

Read more »

在神经网络火起来之前,特征表示这步都是基于硬拼出来的直觉,机械化手工地生成。做出一组特征,改进结果,并把方法写出来是计算机视觉论文里的一个重要流派。

然而另一些人则认为特征本身是可以学习而来的,他们还相信,为了表征足够复杂的输入,特征本身应该阶级式地组合起来。持这一想法的研究者们,
包括 Yann LeCun,Geoff Hinton,Yoshua Bengio,Andrew Ng,Shun-ichi Amari,Juergen Schmidhuber,相信通过把许多神经网络层组合起来训练,
他们可能可以让网络学得阶级式的数据表征。在图片中,底层可以表示边,色彩和纹理。

网络提取的特征

高层可能可以基于这些表示,来表征更大的结构,如眼睛,鼻子,草叶和其他特征。更高层可能可以表征整个物体,如人,飞机,狗,飞盘。最终,在分类器层前的隐含层可能会表征经过汇总的内容,其中不同的类别将会是线性可分的。然而许多年来,研究者们由于缺乏大规模的数据,计算力不行等原因未能实现这一愿景。

Read more »

  1. This architecture can model local pairwise feature interactions in a translationally invariant manner which is particularly useful for fine-grained categorization.

  2. We present experiments with bilinear models where the feature extractors are based on convolutional neural networks.

  3. Results show that the architecture compares favorably to the existing state of the art on a number of fine-grained datasets while being substantially simpler and easier to train.

  4. Moreover, the architecture can be easily trained end-to-end unlike these texture descriptions leading to significant improvements in performance.

  5. Significant accuracy gains in semantic segmentation have recently been obtained through the use of convolutional networks

  6. Convolutional network architectures that had originally been developed for image classification can be successfully repurposed for dense prediction

  7. The relentless success of deep learning techniques in various high-level computer vision tasks – in particular, supervised approaches such as Convolutional Neural Networks (CNNs) for image classification or object detection – motivated researchers to explore the capabilities of such networks for pixel-level labelling problems like semantic segmentation.

  8. It is designed to be efficient both in terms of memory and computational time during inference.

  9. We present a novel and practical … architecture for …

  10. Sth. has a wide array of applications ranging from … to …

Read more »

本篇学习笔记主要介绍了正则化的贝叶斯解释、过拟合、Dropout、批量归一化、K 折交叉验证以及 MXNet 中 GPU 的使用。

正则化的贝叶斯解释

计算损失函数时加入 $L_2$ 范数正则化,那么最小化损失函数时实际上是在最小化:

然而这个正则化项也可以在贝叶斯方法中得到解释。

统计学中有两个学派,一派叫做 Frequentiet (频率派),一派叫做 Bayesian (贝叶斯学派)。以线性回归为例,假设 $y_i = \omega x_i + noise$ ,noise 服从正态分布,均值 0 方差为 $\sigma^2$.

从贝叶斯的角度:
假设 $\omega$ 的 prior 是高斯 prior: $\omega \sim N(0, 1/\lambda)$,这里的 N 为高斯(正态)分布,因为有 MAP = ML * Proir (MAP: 最大先验概率,ML: 似然函数最大值),所以由最大先验概率估计有:

Read more »

典型的科技论文结构如下:

  • Title/Abstract
  • Introduction
  • Optional: Background
  • Optional: Formal Problem Definition
  • Related Work (alternatively put before conclusion)
  • Example
  • Approach/Framework
  • Implementation
  • Evaluation
    • Experiment/Case Studies/Experiences/Examples
  • Discussion
  • Conclusions (and Future work)

下面将论文分解,按点一一介绍其结构以及写作时的注意事项。

Read more »

本文基本参考 PPT How to Write Research Papers,在论文写作套路方面也有导师给的一些私货。

The key research contributions are the deciding factor for your paper’s acceptance.

— 尽管论文写作有许多套路,但是论文能被接收的关键还是要看你的研究成果。

Quality/impact over quantity of papers

— 论文的质量远胜于质量。

Read more »

如何在远端开启 jupyter notebook 服务,而在本地访问?

可以把远端的端口映射到本地,让浏览器能够在本地打开 notebook。
先在远端运行 jupyter notebook,然后使用 ssh 将远端的jupyter notebook 端口映射到本地的未使用的端端口

1
ssh -L8008:localhost:8888 remote-ip

其中 8008 为本地未使用的一个端口号,8888 为在远端开启 jupyter notebook 时的默认端口号。

Read more »

近日,西瓜书《机器学习》作者、国内机器学习大牛周志华教授发表了一篇论文,提出了一种基于树的方法——gcForest,挑战深度神经网络。本篇学习笔记为对其论文的解读。

深度神经网络的缺陷

深度神经网络的巨大成功掀起了一股深度学习热潮,然而,深度学习取得巨大成就的同时,其不可避免的缺陷也渐渐暴露出来。
深度学习主要的缺陷有以下几个方面:

  • 深度神经网络训练时需要大量的数据,无法被运用到小规模的数据任务中;
  • 深度神经网络是个非常复杂的模型(complicated models),训练过程中通常需要强大的计算设施(powerful computational facilities),这导致身处大公司外的个人无法充分发挥其学习的潜力。
  • 深度神经网络超参数(hyper-parameters)太多,其学习性能严重依赖于调参的过程。
  • 深度神经网络的理论分析很困难,学习的过程就像一个黑箱子。

Read more »

本篇学习笔记参考《算法》四版第五章“数据压缩”部分。

概述

数据压缩模型

数据压缩的模型可以这样表示:
模型
模型由两部分组成,压缩盒与展开盒。压缩盒将一个比特流B转化成压缩后的版本C(B),展开盒能够将C(B)转化回B。
若用 |B| 表示比特流中比特的数量,则 μ = |C(B)|/|B| 称为压缩率,该值越小,表示压缩算法越高效。
这种模型叫做无损压缩模型——保证不丢失任何信息,即压缩和展开之后的比特流必须和原始的比特流完全相同。许多类型的文件都会用到无损压缩,例如数值数据或者可执行代码。

Read more »

本文《Effective Java》第一章的读书笔记,主要内容是:在java程序升设计中,何时以及如何创建对象,何时以及如何避免创建对象,如何确保对象及时地销毁以及销毁对象后的清理工作。

静态工厂方法代替构造器

创建类的实例,有两种方法:
① 利用共有构造器
② 类提供一个共有的静态工厂方法,它返回类的实例

第二种方法类似于这样:

1
2
3
public static Boolean valueOf(boolean b){
return b ? Boolean.TRUE : Boolean.FALSE;
}

Read more »