当今世界,深度学习应用已经渗透到了我们生活的方方面面,深度学习技术背后的核心问题是最优化(Optimization)。最优化是应用数学的一个分支,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。
梯度下降法(Gradient descent,又称最速下降法/Steepest descent),是无约束最优化领域中历史最悠久、最简单的算法,单独就这种算法来看,属于早就“过时”了的一种算法。但是,它的理念是其他某些算法的组成部分,或者说在其他某些算法中,也有梯度下降法的“影子”。例如,各种深度学习库都会使用SGD(Stochastic Gradient Descent,随机梯度下降)或变种作为其优化算法。
今天我们就再来回顾一下梯度下降法的基础知识。
原创
[原创] Emacs文章合集
转载请注明出处:http://www.codelast.com/
文章越来越多,越来越不好查询了,只能一点点归类。
➤ 在Emacs中使用树形“资源管理器”——emacs-nav
[原创] 在Emacs中使用树形“资源管理器”——Sr Speedbar
『1』下载
使用Sr Speedbar可以在Emacs中“造”出一个树形资源管理器。在这个页面下载到 sr-speedbar.el(若链接已失效,请自行搜索)。
『2』创建一个Emacs的load path
我在我放置Emacs插件的总目录 ~/.emacs.d/ 下创建了一个“extra”目录,用于放置其他我自己下载的插件,于是我把上面下载的 sr-speedbar.el 也放到这个extra目录下了。
[原创] 在Emacs中使用树形“资源管理器”——emacs-nav
『1』下载
项目主页:https://code.google.com/p/emacs-nav/
『2』安装
解压下载到的安装包,并将其拷贝到一个自己创建的Emacs load-path中:
tar zxf emacs-nav-49.tar.gz cd emacs-nav-49/ mkdir ~/.emacs.d/emacs-nav/ cp * ~/.emacs.d/emacs-nav/
其中,~/.emacs.d/emacs-nav/ 是我为emacs-nav自己创建的一个目录。
[原创] 如何在Ubuntu下的VirtualBox虚拟机(Windows XP)里挂载/使用U盘
在Ubuntu下安装了VirtualBox之后,如果你的虚拟机安装的是Windows XP系统,那么,你会发现,当你插上U盘时,无论你怎么折腾,虚拟机(XP)里都是没有任何反应的,既不提示找到新硬件,也看不到U盘的分区。
不像VMware,默认安装之后对U盘的支持很好,根本不需要用户去配置什么东西。从这一点上,我觉得VirtualBox太龌龊了,小而美归小而美,但是你不能把最常用的功能放在基础支持列表之外,还要用户去配置才能用,不是么?
下面就教你如何能让VirtualBox的虚拟机(XP)找到U盘并挂载上。宿主机系统是Ubuntu。实话说,网上的很多文章写得实在让人很无语,要么简略得太夸张,要么连中文都写得不通顺(负点责任行吗),我实在是看不下去了,所以在研究出来怎么做之后,我决定要把这么简单的一件事情写成教程,帮助有需要的人。
[原创]基于微信和Raspberry Pi的远程监控系统 / A Remote Monitoring System Based on WeChat & Raspberry Pi
Raspberry Pi是什么?
引用维基百科的一句话:
The Raspberry Pi is a credit card sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of stimulating the teaching of basic computer science in schools.
简单地说,它就是一个基于ARM CPU的、信用卡那么大的迷你计算机。
In short, Pi is an ARM-based mini computer which has a credit card size.
前段时间公司举行hackathon比赛,我做了一套如题所示的系统,整个过程太累了,连续30个小时没睡,简直要了我半条命,现在我打算把它的主要实现记下来。
[原创]在Ubuntu下使用OpenShot进行简单的视频编辑(旋转画面方向 & 消除视频声音)
OpenShot是Linux下超好用的视频编辑软件之一,而且它非常傻瓜化。为了编辑一个视频(只做两个操作:旋转画面方向、消除视频声音),我抱着试一试的心态用了一下,结果在5分钟之内就完全搞定了,而且我之前没有任何视频编辑软件使用经验——足见OpenShot做得多么傻瓜化。
[原创]在Raspberry Pi(树莓派)上调用V4L2来操纵摄像头拍照/Use V4L2 on Raspberry Pi to Controll a Webcam to Grab Images
Raspberry Pi是什么?
引用维基百科的一句话:
The Raspberry Pi is a credit card sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of stimulating the teaching of basic computer science in schools.
简单地说,它就是一个基于ARM CPU的、信用卡那么大的迷你计算机。
我曾经写过一篇教程,展示了如何调用OpenCV,来控制摄像头拍照。在那篇文章的末尾,我提到了一个遗留问题,即把抓取图像的尺寸设置得稍高一点的时候,那个程序就很容易崩溃;在图像尺寸设置得很低的时候,有时候也会崩溃,我一直没弄明白为什么。
但是在前段时间,由于参赛原因,被迫在很短的时间内解决这个棘手的问题。真可谓是搜了无数网页,最后采取了一种折衷的方式“在很大程度上”解决了这个问题——毕竟还不完美。
[原创] 让树莓派自动上报IP地址到邮箱/Let Raspberry Pi to report its IP address via Email
Raspberry Pi是什么?
引用维基百科的一句话:
The Raspberry Pi is a credit card sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of stimulating the teaching of basic computer science in schools.
简单地说,它就是一个基于ARM CPU的、信用卡那么大的迷你计算机。
由于我使用树莓派的场景大多数是在没有显示器、只用terminal连接它的情况下,所以,它的IP地址有时会在重启之后变掉(DHCP的),导致我无法通过terminal连接上它。然后我又要很麻烦地登录路由器的管理界面里,去看它被分配到的新IP是什么,然后用terminal重连,太麻烦了,不是么?作为一个树莓派玩家,这种麻烦简直是无法接受的!
[原创] line search中的重要定理 - 梯度与方向的点积为零
对精确的line search(线搜索),有一个重要的定理:

这个定理表明,当前点在 \({d_k}\) 方向上移动到的那一点( \({x_k} + {\alpha _k}{d_k}\) )处的梯度,与当前点的搜索方向 \({d_k}\) 的点积为零。
[原创]Python基础知识小结(1)
本文『很傻很天真』,熟悉Python的人都不用看了。另外本文的部分内容已经过时,请视情况忽略。
环境:未特别注明的话为Python 3.2.3,特别注明了的话则为注明的版本。
[原创]高等数学笔记(23)
【正文】
<定义2> 设函数 \(f(x)\) 在 \({x_0}\) 点的左侧 \([{x_0} + \Delta x,{x_0}]\) ( \(\Delta x < 0\) )有定义,如果极限 \(\mathop {\lim }\limits_{\Delta x \to {0^ - }} \frac{{f({x_0} + \Delta x) - f({x_0})}}{{\Delta x}}\) 存在,则称此极限为 \(f(x)\) 在 \({x_0}\) 点的左导数,记为 \({{f'}_ - }({x_0}) = \mathop {\lim }\limits_{\Delta x \to {0^ - }} \frac{{f({x_0} + \Delta x) - f({x_0})}}{{\Delta x}}\)