我對Embedding的理解

Embedding是NLP中,用來表示一個詞的常見的方式。不過,他的用途其實不僅僅可以用在NLP中,在簡單的線性回歸或邏輯回歸中 ———— 進而在神經網絡中,也可以使用到這個東西。
我當初在學習Embeding這個概念的時候,花了比較長一段時間才算真正理解。我不知道到底是這個概念本身理解起來就比較難,還是容易遺忘的原因。Anyway,因為這一點,我決定寫一篇文章,說說我對Embedding的理解。

»
Author's profile picture 小創

PyTorch自動求導(Autograd)原理解析

我們知道,深度學習最核心的其中一個步驟,就是求導:根據函數(linear + activation function)求weights相對于loss的導數(還是loss相對于weights的導數?)。然后根據得出的導數,相應的修改weights,讓loss最小化。 各大深度學習框架Tensorflow,Keras,PyTorch都自帶有自動求導功能,不需要我們手動算。 在初步學習PyTorch的時候,看到PyTorch的自動求導過程時,感覺非常的別扭和不直觀。我下面舉個例子,大家自己感受一下。

»
Author's profile picture 小創

把 Postgresql 數據庫內容從 10.xxx 升級到 11.2

我 Mac 本地的 psql version 不知道何時何因被升級到了 11.1_1。今天嘗試使用的時候,提示:

»
Author's profile picture 小創

記打卡團服務器的一(三)次升級:從 Ubuntu 12.04 到 18.04

正月初六,乘著春節假期的最后一天,我窩在家里,一鼓作氣,把我的一個業余項目(見證打卡團)的服務器,從古老的 Ubuntu 12.04 連續升級了三次,到了最新的 LTS 版本,18.04。 Ubuntu 12.04 -> Ubuntu 14.04 Ubuntu 14.04 -> Ubuntu 16.04 Ubuntu 16.04 -> Ubuntu 18.04 你可能會問,為什么不直接從 12.04 升級到 18.04 呢?這是因為系統不支持這樣升級,只能兩個大版本一步一步升級。

»
Author's profile picture 小創

什么叫代碼的可讀性?為什么說Koddtlin的可讀性比Java高?

不久之前,我看了一篇文章,大意是Kotlin與Java之間的對比,像這種文章,我一般是直接忽略的,但是那天我還是打開了,然后就看到一個非常吃驚的結果。 里面有一段是關于Kotlin與Java之間可讀性的對比的文章,作者的結論是:Kotlin并不比Java更具有可讀性,所有認為Kotlin 比Java更具有可讀性的結論都是“主觀性”的。 并且作者舉了一個在我看來,不知道該怎么來描述的例子:

»
Author's profile picture 小創

函數式編程的那些特性(一): Immutability

FBI warning:
這又是一個系列的文章(Hopefully),介紹Functional Programming的一些特性,以及Why there are so awesome! 目測將cover以下的一些話題:

»
Author's profile picture 小創

人類簡史

CIA Error: 以下內容有劇透,請結合自身情況,自覺選擇離開

»
Author's profile picture 小創

Elm語言初體驗

這個周末兩天一直在看Elm,這是一門函數式編程語言。所謂函數式編程(Functional Programming,FP),跟面向對象編程(Object Oriented,OO)是同一種類型的概念,是一種編程模式。具體什么叫函數式編程,它有什么特征,有什么優勢,這里不作具體解釋。只放出一個大膽的預言,就是在未來,尤其是在Server端,將會是函數式編程的天下。
Anyway,Elm是一門函數式編程語言,它是一門靜態的,強類型的語言,目前主要targeting在Web端,因此它有一個compiler可以編譯成JS。
目前,編譯成JS的語言已經有非常多了,如CoffeeScriptTypeScriptPureScript等等,甚至很多現有的general purpose語言現在也有了一些工具,用來把它們編譯成JS,如Clojure 有ClojureScript,Scala有Scalajs,Ruby有Opal等等等等。
為什么有這么多的新語言編譯成JS,又有這么多工具把其它語言編譯成JS呢?這些說白了其實都是想取代JS,這說明一個問題,那就是JS不夠好,這個跟JVM上面有這么多語言原因是類似的。
Elm也是出于同樣的原因,它想要發明一種全新的Web語言,用于取代JS。那在這么多語言中,Elm的優勢是什么?
經過這兩天的接觸,我了解到它的優勢有以下幾個:

»
Author's profile picture 小創

買顆星星送給你

如果在你臨死前,突然給你三百萬,你會做什么呢?

»
Author's profile picture 小創

how to get rid of moments

»
Author's profile picture 小創

標準GNU命令行的格式

我們每天都在Terminal下面運行很多命令,但是,你了解一條命令的標準格式嗎?對于我來說,以前并沒怎么關心過,都是拿來就用,不會就google。這幾天繼續看《Build Awesome Command-Line Applications in Ruby 2》,其中講到了GNU規定的命令行的格式,看完以后有種恍然大悟的感覺,才發現原來一條命令還有一個標準格式的,有了這個格式,很多東西都不用記了,一個命令用起來就覺得有章可循了,對一個不熟悉的命令,也更容易猜到,或是找到使用的方法。

»
Author's profile picture 小創

什么叫"功能單一"

昨天開始看《Build Awesome Command-Line Applications in Ruby 2》這本書,看完第一章。其中提到一個Awesome的Command,應該是功能單一(single-purpose)的,但是具體什么叫功能單一呢?為了解釋這個問題,書中舉了兩個反例,來解釋什么不是功能單一。
第一個例子是一個備份數據庫的腳本。其中需要備份的數據庫有兩個,這個腳本一次性把兩個腳本都備份了,腳本大概是這么寫的:

»
Author's profile picture 小創

Rails Authentication From Scratch

這是一個對railscast250的學習筆記,所有copyright belongs to Railscast作者 Ryan Bates

»
Author's profile picture 小創

安卓單元測試(十一):異步代碼怎么測試

這是被問得最多的問題之一。。。

»
Author's profile picture 小創

Android單元測試(十):DaggerMock:The Power of Dagger2, The Ease of Mockito

The Old Way

我們在系列的第六篇文章前面介紹了Dagger2在單元測試里面的使用姿勢。大致過程是這樣的,首先,你要mock出一個Module,讓它的某個Provider方法在被調用的時候,返回你想到的mock的Dependency。然后使用這個mock的module來build出一個Component,再把這個Component放到你的ComponentHolder。舉個例子說明一下,假設你有一個LoginActivity,里面有一個LoginPresenter,是通過Dagger2 inject進去的,如下:

»
Author's profile picture 小創