1. 程式人生 > 其它 >軟工小組對深度學習做出這樣的事,看完我驚呆了

軟工小組對深度學習做出這樣的事,看完我驚呆了

學習感想

程傳奇

深度學習,這是近幾年越來越被人們廣泛提及的名詞。審視我們的生活,有許多領域已經成熟應用深度學習;因為深度學習的發展,我們的生活也變得智慧化。但深度學習,同其餘所有的技術一樣,不是一蹴而就的,無論是它的發展還是產生,都需要時間的積累和理論的發展。有些言論將深度學習看做新時代社會智慧化的標誌,但深度學習的理論從上世紀就已出現,直到近幾年才逐漸被廣泛應用。深度學習依然有許多問題沒有得到解決:深度學習網路更像一個“黑匣子”,能得到正確的結果但對中間過程沒有清晰的理論;引數的設定更偏向於根據經驗和不停的除錯,缺少理論依據;網路的深度逐漸增加,訓練的時間也逐漸增加,在解決複雜的問題時,時間開銷較大。我們不應對深度學習的發展盲目樂觀,還有許多知識需要學習,還有許多問題需要解決。

餘子豪

通過觀看這次有關“深度學習”的視訊,我再一次深刻地體會到了“深度學習”在不斷地發展演變過程中已經具備了“強大”的能力。我也瞭解到了目前“深度學習”的一些待改進的“缺陷”,如演算法輸出不穩定,易被“攻擊”;模型複雜度高,難以糾錯和除錯;模型層級複合程度高,引數不透明;模型增量差,遷移能力差;對開放性的推理問題無能為力;人類知識無法有效監督,機器偏見難以避免等等,相信隨著科技不斷地發展進步,這些缺陷可以得到改善或消除。
同時我也粗略地知道了有關神經網路學習的知識。神經網路學習是利用了矩陣的線性變換和啟用函式(如sigmoid函式)的非線性變換,將原始輸入空間投影到線性可分的空間去分類。關於這項技術,理論上來說大多利用了概率、函式變換等知識,原始輸入中看似難以區分的特徵通過一系列的函式變換最終轉化為機器容易區分的特徵。往細去說,這裡面涉及到了感知器、萬有逼近定理、梯度消失問題、自編碼器、受限玻爾茲曼機(RBM)等原理。觀看該視訊只是初次接觸到這些名詞,瞭解到了大致的框架,還是有所收穫。

陳能全

學習人工智慧的介紹,感觸頗深。目前人工智慧人才需求大於供給,國內還需加強對人工智慧人才的培養。而以一個程式設計師的視角來看核心就是策略和演算法,要實現人工智慧的深度學習,這涉及到很多個函式,很複雜。人工智慧沒那麼簡單。而且深度學習也有不能,例如模型過於複雜,難以進行糾錯和改正,人工智慧專注於感知類問題,對於開放性問題無能為力,人類知識也無法有效引入等,從連線主義和符號主義的對立到合作,推動了人工智慧的發展。而要實現人工智慧的自主學習就要引入生物模型,例如人類的神經元,以程式設計師的視角來講就是演算法,就是啟用函式,繼而建立感知器模仿人類的器官進行一系列複雜的運作。受限玻爾茲曼機無疑加強了人工智慧訓練的效果。雖然人工智慧僅有幾十年的發展歷史,但是發展很迅速,未來時代必定是人工智慧大展身手的時代。

付坤

深度學習是:
通過一系列多層的非線性變換對原始資料進行特徵提取,經過一定結構的網路,可以生成契合任務要求的feature map(通過一系列非線性變換後得到的資料模式,也就是每層所得到的feature map),以方便任務在某一資料空間中,可以被區分/識別等。利用資料來不斷更迭各層引數以實現更好的map來實現任務。
深度學習目的:
通過某種演算法不斷優化模型內部的引數,使得模型給出的輸出與實際值足夠的接近,也就是模型的“預測”足夠準確
深度學習不能:
演算法輸出不穩定,容易被攻擊
模型複雜度高,那一糾錯和除錯
模型層級符合程度高,引數不透明

程式碼練習

練習目標

本次練習分為兩個部分:pytorch基礎和簡單的深度學習網路應用

pytorch基礎

程式碼中提供了常見的運算。pytorch主要應用於深度學習領域,這使得它的變數以向量和矩陣為核心,基本操作和資料型別與numpy十分相似,但pytorch在資料定義方面的特點在於使用張量來定義運算資料。基於python,pytorch在矩陣操作方面比較便利,這有利於矩陣運算。

程式碼對於基礎學習很有幫助,但也存在著一些小問題,比如常見的資料型別不匹配

此處的@運算子為矩陣乘,出錯原因為一個張量內的資料型別為float,而另一個是整數,可以看到之前的定義

對於直接定義的張量,pytorch預設為float。這裡使用arange產生資料,資料型別是整數。另外,使用range產生資料,資料型別為float。兩個方法很像,但產生資料的資料型別不同。

對於兩個不同資料型別的張量進行操作時,應將張量轉換為相同的資料型別

簡單深度學習網路的應用

程式碼給出的是資料螺旋狀分佈。這很有代表性,因為這樣的資料很好地回答了為什麼需要深度學習網路。對於基礎的機器學習模型,能解決很多問題,而且原理直接、清晰。但這些機器學習模型也有自身的侷限性,在面對比較奇怪的資料分佈情況時,效果就不是很理想,即使可以解決,也需要使用一些技巧。深度學習網路在面對複雜的、難以提煉模型的問題時有明顯的優勢,其基礎結構簡單、可以根據問題設計網路的特點使得深度學習網路有比較強的適應性,在解決一些比較複雜的問題時效果比基礎機器學習模型好。

這是一個簡單的神經網路模型,僅有兩層,與基礎機器學習模型的線性分類器相似


可以看到分類大致沒有問題,但對於螺旋形的資料分佈情況,因為是線性分類,對於一些在螺旋邊緣的資料分類並不準確


這是第二個神經網路模型,可以看到和第一個神經網路模型十分相似,但是Relu層的新增使得神經網路不再是線性的


可以看到分類效果更好,對於螺旋邊緣的資料分類的準確性也比較好。