Archive / 历史文章

左耳听风 ARTS 打卡第七周

发布于 2019/5/12 · 本文来自旧站归档,可能不代表当前观点。

01

正文

ARTS 第 7 周

每周完成一个 ARTS:
Algorithm: 每周至少做一个 LeetCode 的算法题
Review: 阅读并点评至少一篇英文技术文章
Tips: 学习至少一个技术技巧
Share: 分享一篇有观点和思考的技术文章


Contents:

  • Algorithm: LeetCode 119. Pascal’s Triangle II
  • Review: Deep inside: Autoencoders
  • Tip: 在终端中使用代码编辑器打开文件或者目录
  • Share: 播客分享

Algorithm

杨辉三角 II 题目:119. Pascal’s Triangle II

难度:Easy

题意:给定一个不大于 33 的非负数 k,返回杨辉三角的第 k 行。

示例:

Input: 3
Output: [1,3,3,1]

要求:优化算法到到 O(k) 空间复杂度

解法:

这道题目和上周的杨辉三角 I 很相像,只要找到数学公式即可轻易做出。

杨辉三角有一个性质是,它的第 n 行的第 i 个数字(n 和 i 均从 0 开始)为:$C_n^i = \frac{n!}{(n-i)! \times i!}$。那么由第 i 个数字就可以很容易推出第 i+1 个数字:$C_n^{i+1} = \frac{n!}{(n-i-1)! \times (i+1)!} = \frac{n-i}{i+1} \times C_n^i$。

那么代码也就很容易写了:

class Solution(object):
    def getRow(self, rowIndex):
        """
        :type rowIndex: int
        :rtype: List[int]
        """
        if rowIndex > 33 or rowIndex < 0:
            return []

        ans = [1] * (rowIndex + 1)
        for i in range(rowIndex):
            ans[i+1] = ans[i] * (rowIndex - i) // (i + 1)

        return ans

时间和空间复杂度均为 O(n)。


Review

Deep inside: Autoencoders

这篇文章选自 Medium 上 Towards Data Science 专栏。对自编码器有了一个大致的介绍。

本文先介绍了自编码器的基本结构:自编码器由两部分组成,编码器解码器

  • 编码器:这是将输入压缩为潜在空间表征的网络部分。它可以由编码函数 h = f(x) 表示。
  • 解码器:这部分旨在重建潜在空间表征的输入。它可以由解码函数 r = g(h) 表示。

整个自编码器可以用函数 g(f(x)) = r 来表示,我们希望输出 r 与输入 x 尽量接近。这样做的目的在于,潜在表征 h 是非常有价值的。

自动编码器是从数据示例中自动学习的(无监督学习),这意味着可以很容易地将这个算法应用到某个数据集中,来取得良好的性能,且只需要适当地训练数据而不需要任何新的特征工程。

需要注意的是,自编码器在图像压缩任务上表现不好,因为他只是在某个给定的数据集上训练,所以也只能在相似的图像上取得不错的效果,而对于一般的图像,JPEG 等图像压缩算法通常有更好的效果。

之后作者也对几种不同的自编码器进行了讨论,如 Vanilla 自编码器、多层自编码器、卷积自编码器和正则化自编码器。有兴趣的同学可以去看看。


Tips

在终端中使用代码编辑器打开文件或者目录 只要在你的 .zshrc 中添加这几行,之后 source 一下即可:

alias atom='/Applications/Atom.app/Contents/MacOS/Atom'
alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
alias code='/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code'

Share

播客分享

我本人比较喜欢听播客节目,这周分享自己常用的几个 iOS 播客客户端和常听的几个播客节目。

客户端:

  • iOS 自带的 Podcast:界面清爽,节目数量大,但是使用逻辑比较混乱,这家伙还会偷偷在后台给你自动下载节目,有一次我的 iPhone 告诉我内存已满,打开一看才发现播客占了 10 个 G……
  • Castro:目前使用最多的泛用型播客客户端,非常流畅,缺点是网络稍有不佳播放就会出错
  • Moon:界面超级好看!也是泛用型播客客户端,使用需要适应一段时间,但没有导出订阅的功能,是一个小小的遗憾

节目:

  • 比特新声:很久没更新了,但是有才和海龙做的内容我蛮喜欢的
  • 单读:许知远的单读节目,已经没有更新了,原内容非常文艺
  • 翻转电台 Flip Radio:可以学习到哲学心理学知识以及在实际生活中的应用
  • 狗熊阅读(会员版):这是我听的第一个播客节目,也是引领我进入播客世界的第一个节目,大狗熊的获奖播客
  • 狗熊有话说:大狗熊日常碎碎念,还有同款 YouTube
  • 哈利播客:原 HPUP,《博物志》婉莹做的重新领读《哈利波特》的播客节目
  • 一天世界:李如一老师。。。
  • Byte.Coffee:Milkshake羊的播客
  • The CJ show(理想屯):陪伴我度过了最孤独的那段时间,球姐和 LJ 给人感觉非常亲切,听完又觉得人生有希望了
  • PAGE SEVEN:一个已经不更新了的播客节目,但是个人强推!!!创始人上过 TEDx,去听吧,回来你会感谢我的!