0%

所谓理论

梯度下降是数学优化里面的一个方法,数学优化的问题被定义成:

\[ \begin{split} & \text{minimize } & f_0(x) \\ & \text{subject to } & f_i(x) \lt b_i,\ i = 1, \cdot \cdot \cdot, m. \end{split} \]

\(\mathbf{x}\) 表示的是一个向量,对于所有满足约束条件的 \(z\),如果 \(f(\mathbf{z}) \gt f(\mathbf{x}^{*})\),那么 \(\mathbf{x}^{*}\) 就是结果向量。

Gradient Descent,或者叫做梯度下降,就给出了求解 \(\mathbf{x}^{*}\) 的一个方法。当然使用梯度下降求解 \(\mathbf{x}^{*}\) 是有前提条件的,即 \(f: \mathbf{R}^n \rightarrow R\)上是可微的,并且去掉了其他的约束条件,所以它是求解无约束最优化的一种方法。

Read more »

leetcode 的第 4 题,考察数组的遍历、双指针、二分查找和一点点数学。

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。

你可以假设 nums1 和 nums2 不会同时为空。
Read more »

17 年年底的时候,组织过了一次公司内部的 Machine Learning 的学习和分享活动,当时积累下来不少有价值的内容,没有好好整理,趁着这次重整 blog 的机会,把这部分内容整理出来。幸运的是,自 17 年底来, Machine Learning 并没有再出现像 10 年以后的四五年内的爆发式的发展,所以这部分的内容不会显的特别过时。甚至,现在的 Machine Learning 有点凉凉的感觉,就如 40 年前一样。

Read more »

leetcode 的第 2 题,考察链表的遍历和简单数学。

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
Read more »

leetcode 的第 1 题,考察数组的数组的遍历和 hash 表的使用。

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
Read more »