第一次深度學習模型是如何訓練的

  • 2020 年 2 月 26 日
  • 筆記

電腦視覺學著學著,就自然而然的歪到機器學習,深度學習這一塊兒了,因為單純的圖片處理是不能滿足一些要求的,沒學深度學習時,有時覺的它簡單,因為不就按著套路來嘛。但它又不簡單,因為裡面涉及的知識真不是一下就可以說清楚的。

所以既然說不清楚,我這個小辣雞就不說了,小白們也不要妄想可以一下就學會,今天只和大家談一談我從聽說深度學習,到我第一次完成一個像樣的模型訓練的過程,希望可以為小白們提供參考。

第一次聽說

有關機器學習,最簡單的一種大概就是KNN演算法了,我是在全國大學生電子設計大賽備賽時老師給我們介紹的,賽前押題時,老師給我們略微介紹了一下這個最最最簡單的機器學習演算法,這個演算法大概就是物以類聚人以群分的原理吧,它會統計某個對象在訓練樣本中離它最近的K個對象,K個對象中種類數最多的那個,就被認為是這個對象的種類(就是如果某人身邊K個活物里,有K-1個都是豬,那他就被判定為豬,嘿嘿)。

不過那年暑假我們並沒有用上機器學習的東西,我也並沒有深入研究它。

第一次開始學習

我第一次開始學習,是在大二上,我自我感覺在電腦視覺方面難以再進步了(當然不是都學會了,只是學了,沒有什麼項目需要我來練手,而書本上的東西,已經看煩了),便想要嘗試點新的東西,就學機器學習吧。

我學機器學習是通過兩本書:《機器學習實戰》《統計學習方法:李航》,這兩本書,前者重程式碼,後者重理論,而且章節目錄很類似,是非常適合相互參看的。除了這兩本書之外,B站上還有很多配套的教學影片,這裡給大家推薦兩個。

一個是位比較騷的UP主「雲雨偏藍」(好像是搬運工),全程手把手照著《機器學習實戰》這本書教你寫程式碼,鏈接放下面了:

https://www.bilibili.com/video/av36993857?from=search&seid=8894021963757644142

一個是位漂亮小姐姐全程露臉帶你學,UP名為「菊安醬」,網站:

https://www.bilibili.com/video/av81430943from=search&seid=8894021963757644142

悶頭學了有一段時間,只能說裡面的數學知識是真的難,學了大概有3/4,因為學業壓力便放一邊了,最近又發現一個評價很高的影片,是浙江大學2017年研究生課程之機器學習,是結合《統計學習方法》將的,裡面理論,數學講的很清晰,我希望以後再有機會可以刷一遍。

https://www.bilibili.com/video/av77638697?p=61

我認為應該有怎樣的基礎

機器學習,深度學習很火,很多學弟學妹都很想學,但我還是希望他們能多積累些基礎,而不要起步太高,否則你肯定會錯失很多有意思的東西。

1:首先編程基礎要有吧,我大一玩單片機時學的C語言,之後學opencv電腦視覺學的C++,而在學《機器視覺實戰》時鞏固了一下python,雖然我編程不咋樣,但一些基本功還是有的。

我覺得如果你想很快的學好一門程式語言,還是應該刷一套教學影片,網上免費的教學影片一大把,如果你覺得講的不好,也可以去一個平台買一門評價比較高的課程。四五十的課程貴嗎?其實不貴,只是你白嫖的本性限制了你。

不過能白嫖還是白嫖的好,但當你覺得看書學不精通,看網上影片看不下去的時候,買一門課試試看。

2:其次明確個方向,機器學習,深度學習可以應用的方面很多,而你如果單學不用,是不會有什麼收穫的,所以你需要知道你學了是想幹什麼,就像我是學電腦視覺的,而它本身就是深度學習一大應用領域。

我的深度學習環境的搭建

下面說一說,學了機器學習後,是如何入坑深度學習的?

首先簡述一下機器學習和深度學習這個比較容易混的概念,深度學習是機器學習的一個子集,而你常聽說的神經網路是機器學習的演算法,但當這個神經網路疊加了好幾層變成深度神經網路的時候,它就是深度學習的演算法了。你可以將深度學習理解為機器學習一個龐大的分支。

在前面我學機器學習時,都是手打python程式碼來實現演算法,但深度學習有很多成形的,方便的框架,例如:

  • caffe
  • tensorflow
  • pytorch

這些就類似於opencv的包一樣,不過配置的過程要麻煩一些,這裡給大家推薦一位技術大牛的網站:

https://cuijiahua.com/

他在上面跟新有一系列的完整的教程,足以起到引領入門的作用。他有一篇文會教你如何搭建深度學習開發需要的環境。

https://cuijiahua.com/blog/2019/11/dl-14.html