天壤智慧型深度學習 生物資訊方向 實習崗面試總結

2021-09-26 03:01:13 字數 3539 閱讀 2446

非常暴露問題的一場面試,把我薄弱的基礎和最近浮躁的學習狀態揭露無疑。

介紹一下自己

你說你用過lstm模型,請講一下計算遺忘門的時候,總共有多少需要學習的引數:

思路:矩陣x

<

t>

x^{}

x<

t>

的形狀是(nx

,m)(n_x, m)

(nx​,m

),a<

t>

a^{}

a<

t>

的形狀是(na

,m)(n_a, m)

(na​,m

),因此stack以後的矩陣 [

a1>,x

<

t>

][a^{}, x^{}]

[a1>,x

<

t>

] 的形狀是(nx

+na,

m)(n_x+n_a, m)

(nx​+n

a​,m

)。由於c

<

t>

c^{}

c<

t>

與a

<

t>

a^{}

a<

t>

同形狀,因此w

fw_f

wf​的形狀為(na

,nx+

na)(n_a, n_x+n_a)

(na​,n

x​+n

a​),要估計的引數數為 na×

(nx+

na+1

)n_a \times (n_x+n_a + 1)

na​×(n

x​+n

a​+1

) (1 for bias)

你剛才介紹了馬爾可夫蒙特卡洛方法的原理,那你應該比較熟悉馬爾可夫鏈的概念,請講一下隱馬爾可夫模型中狀態轉移矩陣的作用 (內心os: 什麼,那是什麼…一臉懵逼… 回來以後翻了《統計學習方法》才知道他在問的是什麼)

思路: 狀態轉移矩陣由一系列概率構成,矩陣大小是n×

\times

×n (n是所有可能的狀態總數),aij

a_ai

j​表示時刻 t 處於狀態q

iq_i

qi​的條件下在時刻 t+1 轉移到狀態q

jq_j

**​的概率。 在前向和後向演算法的計算中都涉及到狀態轉移矩陣。

關於蛋白質結構這方面了解多嗎,用過結構分析的軟體嗎?

講了本科和蛋白質結構分析扯不上邊的畢設,第二個問題的回答直接誠實又粗暴:沒有

對python熟悉嗎,python2 和python3裡的map()函式有什麼區別?

思路: python2裡map()函式直接返回乙個list,python3裡返回乙個迭代器物件(iterable)

講一下python裡generator的概念。 (內心os: 聽說過這個概念但從來沒有好好查過。後悔沒有好好從基礎學起,一上來就用python做資料分析,做ml,果然是不可取的)

思路:資料量很大時,一次性生成所有資料的list的空間代價比較大,generator可以一邊迴圈一邊推算,它的.next()方法推算出後乙個元素。

建立generator的方法:用()取代列表生成式的; 用yield()函式

參考用過batchnorm嗎,我們為什麼要使用batchnorm? batchnorm是針對哪乙個維度做的normalization?

思路: 可以用來解決梯度消失和梯度**的問題(此處面試官附加了乙個問題,什麼是梯度消失和梯度**,參考: ),使訓練出來的網路泛化效能更好。 隨後我想起ng的課堂作業上,bn的**中給的axis = 3,input的shape是 (m, n_h, n_w, n_c),小心翼翼地回答到:batchnorm是在channel維度上做的… 在面試官耐心又無奈地指導下,知道了bn是對乙個batch做的normalization(不然怎麼叫batchnorm呢),而且對每個channel各自做(原來axis=3的含義是這樣的)。面到這基本就已經涼了

給你乙個可以生成(1到7) 7個數的隨機數生成器,每個數的概率都是1/7,不限方法,你怎麼用它來造出乙個能生成(1到10)是個數的隨機數生成器?

思路: 想了半天絞盡腦汁說 使用這個隨機數生成器n次,n要盡可能大,根據中心極限定理,這n次的平均值會服從乙個均值和方差都已知的正態分佈,通過曲線下面積把分布分成10等份,對應9個平均值取值的分界點… (面試官說這算是乙個近似解法,而且操作上不現實,並且提示更好的答案只需要取兩次,我還是沒想到)

接下來是正解,用到了下取樣: 取兩次隨機數,第一次記為a,第二次記為b,那麼7a+

b7a+b

7a+b

可以涵蓋從(8到56) 的所有整數,且每個取值的概率都是相等的, 接下來只要隨意地運用下取樣方法就行,比如把所有不在 $(10, 50] $ 這個區間的結果捨棄,即如果出現不在這個區間的情況就重新取樣,隨後這個40個取值就可以分成10份…

甩來一張紙,寫一下快排吧(內心os: 補刀! 真的是補刀!原來這一行所有的崗位都需要面演算法是真的)

思路:

# 所有left與right比較都帶=號, 所有與pivot的比較都不帶=號
defquicksort

(a, start, end):if

not a or start >= end:

return

left = start

right = end

pivot = a[

(left+right)//2

]while left <= right:

while

(left <= right)

and a[left]

< pivot:

left +=

1while

(left <= right)

and a[right]

> pivot:

right -=

1if left <= right:

a[left]

, a[right]

= a[right]

, a[left]

left +=

1 right -=

1 quicksort(a, start, right)

quicksort(a, left, end)總結: 要進軍深度領域,不僅要繼續向前學習更加複雜的模型,更要回過頭去把理論基礎和對工具的使用好好掌握一下,另外,需要好好學習資料結構和演算法。

深度學習 研究方向

優化 optimization 深度學習的問題最後似乎總能變成優化問題,這個時候數值優化的方法就變得尤其重要。從實踐方面來說,現在最為推崇的方法依舊是隨機梯度遞減,這樣乙個極其簡單的方法以其強悍的穩定性深受廣大研究者的喜愛,而不同的人還會結合動量 momentum 偽牛頓方法 pseudo newt...

生物資訊基礎 學習筆記 (2)

問題描述 給定一些 dna 序列 t 行 為了標記,往每一行的隨機位置中新增乙個特殊序列,每一行新增的都是一樣的序列。插入的序列可能會產生基因突變,部分鹼基會發生改變。現在,要已經知道 dna 序列,插入序列的長度 l 因為插入的序列不穩定,很可能會發生基因突變,要找出最可能的一致串 l 嘗試長度為...

基於深度學習的海洋生物聲音頻號智慧型識別技術與實現

基於深度學習的水聲訊號智慧型識別技術與實現 基於開源資料集,講聲音做fft變換轉換為頻譜圖,設計卷積神經網路對聲音進行分類識別。這裡的處理對計算機環境要求比較高。1.研究背景與意義 2.聲音特徵提取技術 3.基於深度學習分類器設計 4.實驗結果及將來工作 水聲處理 頻譜fft log mel mfc...