從機器學習到放射學,這個學習工具鏈助你起步!

2020-12-25 讀芯術

全文共5029字,預計學習時長10分鐘

想用機器學習的方法了解放射學嗎?這可不是件容易的事情。

深度學習,TensorFlow,Scikit-Learn,Keras,Pandas,Python還有Anaconda,這麼多的新術語讓人頭暈眼花。在正式學習開始前,需要先掌握這些讓人目不暇接又相對基礎的信息。

大量的網絡資源還有書籍資源可以幫助我們更好地入手。不過,在開始學習各類優秀教程之前,最好對整個生態有所了解。

如果給我6小時砍樹,我會先花4小時磨利斧頭。亞伯拉罕·林肯

首先……

機器學習中最常用的開發語言是Python。許多機器學習的初學者都是從Python入門的,因此Python一定不能錯過。

本篇文章並不旨在教授Python的相關知識,而是演示開發人員如何在龐大的機器學習工具鏈中起步的。

所以,第一件事應該是下載Python以及其他用於機器學習的必要的Python工具。

Hello, Unix

需使用命令行界面來安裝管理Python工具。

Bash不是越多越好

Linux或Mac使用終端。可以在Finder>應用程式>實用程序>終端這個路徑中找到該程序。

Windows則使用命令提示符。單擊Windows圖標> Windows系統>命令提示符,或單擊Windows圖標並鍵入 cmd 。

光標的前面會看到一個文本字符串,上面寫著

machinename:directoryusername$

用戶在「$」後輸入。

以下是一些常見命令:

列出當前目錄中的文件:ls

顯示隱藏文件:ls -a

進入用戶主目錄:cd<directory_path>

轉回子目錄:cd~ 或直接輸入cd

返回上級目錄:cd ..

轉到你所在的最後一個文件夾:cd-

顯示當前工作目錄:pwd

使用上箭頭鍵可以重新輸入上一個指令。再按一次這個鍵則可以返回之前的命令。

清除窗口:clear

在文本編輯器中打開文件,如:atom <filename>

終止應用程式(如ping),按 Ctrl+C

Python

Python是一種解釋性語言,在運行程序時逐行讀取代碼,不像編譯性語言在程序執行前需要將原始碼編譯成機器碼。

目前Python有兩個不同的版本——Python2.7和Python3。Python2.7將於2020年暫停服務,而未來的Python3.x並不一定兼容。所以要不考慮一下以前的舊版本?很遺憾有些框架只支持Python2.7,無論是入門書籍還是網上的入門資源很多都是在這個版本上編寫的。那該如何解決這個問題呢?

幸運的是,電腦可以同時運行兩個版本,並在硬碟上不同的文件夾中運行不同的虛擬環境。通過這樣的方式,一方面我們可以在其他文件夾中專門運行Python2.7完成相應的任務,另一方面可以使用Python3.7完成大部分機器學習的任務。

Virtualenv,Python Environment Wrapper (pew),venv以及 pyvenv是管理不同Python虛擬環境的工具。其中最簡單的是Conda,使用Anaconda時,它與Python一起安裝。

Anaconda

Anaconda是一個開源平臺,可能是在Linux,Mac OS X和Windows上使用Python進行機器學習的最簡單方法。它可以幫助管理編程環境,它還包含數據科學中常用的Python包。

在系統上安裝完適用的Python版本後,接下來需要設置環境。

Conda

Conda是Anaconda使用的Python包管理器和環境管理系統。用戶可以通過Conda下載安裝大部分需要的軟體包,但它並不是萬能的。剩餘無法安裝的那部分可以通過命令行pip來完成,後文將詳細介紹。

如果要查看當前環境的軟體包,請鍵入:

conda list env

如果想查看當前Conda的版本,請鍵入:

conda -version

(如果版本低於4.1.0,請輸入conda update conda以更新Conda)

在Anaconda Navigator中,還可以從左邊菜單欄選擇Environments,然後按Create按鈕來創建環境。

用Anaconda Navigator創造名為「new_env」的新環境

還可以通過命令行來創造環境。下面例子使用了Python2.7創造了一個名為「py27」的新環境:

conda create -n py27python=2.7

如要激活環境,請鍵入:

conda activate<your_env_name>

如要停用當前環境,請鍵入:

conda deactivate

如要移除此環境,請鍵入:

conda remove -name<your_env_name> -all

如要列出所有的conda環境,請鍵入:

conda info --envs

帶*的環境是當前的活動環境

如要查看當前環境的包,請鍵入:

conda list env

如果要查看當前運行Conda的版本,請鍵入:

conda -version

(如果版本低於4.1.0,請輸入conda update conda以更新Conda)

使用pip可以安裝兩個重要的機器學習包TensorFlow和Keras。用戶也可以安裝TuriCreate作為蘋果系統上的機器學習框架。

科學棧

以下的Python包為科學棧,可用於多個學科,包括有:

NumPy:用於高效處理數組和矩陣的庫

SciPy:處理數學和科學問題的工具包

matplatlib:Python中的標準2D繪圖庫

pandas:含有矩陣式數據結構,標記索引,時間函數等功能的庫

Scikit-learn:機器學習算法庫

Jupyter:在基於網絡的筆記本中運行的交互Python shell

Seaborn:用於統計數據可視化

Bokeh:用於交互數據可視化

PyTables:HDF5庫的Python包裝器

用戶可以使用Anaconda安裝以上包及相應的依賴項,同時也可以在新創的環境中搜索需要的包。

在Anaconda Navigator中搜索你需要的包

然後,通過選中複選框並單擊「apply」,從列表中選擇它們需要的包。

使用Anaconda Navigator添加新包及依賴

接下來就是像前文描述的那樣,運行pip指令安裝TensorFlow和Keras。(如要使用蘋果系統的CoreML,還可以安裝Turi Create)

pip

pip是通用的python包管理器。

pip install — upgradepip

使用pip安裝某個包,可以輸入以下命令:

pip install<package_name>

編輯Python文件

在Mac上的終端或Windows中的控制臺上可以與python進行交互。如果要寫代碼,大部分人會使用Atom或Sublime Text 等代碼編輯器。儘管目前已出現了各種各樣的編輯器,但大部分很快就湮滅在代碼編輯器的歷史長河中。

不少人喜歡的一款編輯器是Atom,這是由GitHub發布的免費編輯器。Atom還可以使用集成的終端窗口等功能擴展應用程式,這個功能賊6~

這個編輯器安裝完畢後,可以通過Settings/InstallPackages,然後搜索platformio-ide-terminal來添加這一功能。

運行Python文檔

在命令提示符($ or >)後輸入 python<filename.py>

如果要退出Python則輸入 exit()或直接按 Ctrl+D (如果是Windows系統則按Ctrl+Z )

要查看當前使用的python版本,請鍵入:python --version 或 python -V

要查看當前使用的Python安裝位置,請鍵入:which python

環境文件

環境文件是項目根目錄中的一個文件,它列出了所有包含的軟體包及其用於特定項目環境的版本號。因此用戶可以與他人分享項目,也允許在其他項目中重複使用這些軟體包。

創建文件請鍵入:

conda env export -fileenvironment.yaml

如需重創Conda環境及其包,請鍵入:

conda env create -n<conda-env> -f environment.yaml

在某些項目或教程中,作為包管理器的pip運行 requirements.txt,並沒有使用Conda的environment.yaml。

凍結環境可以完成以上動作:

pip freeze >requirements.txt

如要重組,請鍵入:

pip install -rrequirements.txt

Jupyter筆記本

Jupyter筆記本是一個基於網絡瀏覽器的開源應用。這個筆記本可以讓用戶在更方便自如的環境中運行Python代碼,並且能逐步查看效果。Jupyter筆記本可以在標記單元格中的代碼單元格之間添加文本和圖像,因此十分適用於教學。得益於其應用拓展性,還可以在筆記本上添加其他功能。也可以通過Anaconda Navigator安裝Jupyter筆記本:

使用Anaconda Navigator安裝Jupyter筆記本

在提示符下鍵入以下內容以在瀏覽器中創建新的Jupyter 筆記本:

jupyter notebook

用Python 3創建新的筆記本

如果要啟動某一特定筆記本,請鍵入:

jupyter notebook<notebook-name>

順便說一句,不建議同時在Jupyter筆記本上同時運行多個實例:

Jupyter

Jupyter筆記是個整理好幫手

要運行單元格,請單擊Jupyter工具欄中的「Run」按鈕或按Shift + Enter。如果要關閉筆記本,請直接關閉終端窗口或鍵入:

jupyter notebook stop

或是直接按Ctrl+C

終於要開始了!

2018年6月的期刊《數碼成像》,提供了很好的入門材料。(Hello World Deep Learning in Medical Imaging JDI(2018) 31: 283–289 Lakhani, Paras, Gray, Daniel L., Pett, Carl R., Nagy, Paul,Shih, George)

我們的工作並不只是創建一個分辨狗與貓的分類器,而是一個分辨胸部與腹部的x光分類器。AI之旅始於這裡!

留言 點讚 關注

我們一起分享AI學習與發展的乾貨

歡迎關注全平臺AI垂類自媒體 「讀芯術」

相關焦點

  • 谷歌推出首款基於機器學習的古埃及象形文字翻譯工具Fabricius
    【TechWeb】7月15日消息,今天,谷歌藝術與文化今天推出了全球首個基於機器學習的埃及象形文字的數字翻譯工具Fabricius。不管是普通人還是學者都能利用這個工具體驗象形文字,或者助力學術 研究。
  • ...2深度學習環境到神經機器翻譯,上手機器學習這些開源項目必不可少
    雖然研究者們在機器學習領域取得了讓人興奮的成果,不過我們仍然處於機器學習發展的早期階段。對於剛接觸機器學習的開發者來講,想要理解什麼是機器學習,首先要搞懂三個部分:輸入、算法、輸出。算法:如何處理和分析數據機器學習算法可利用數據執行特定的任務,最常見的機器學習算法有如下幾種:1.監督學習。監督學習使用以及標註過的和結構化的數據,通過制定一組輸入數據集合所需的輸出,機器可以學習如何識別目標並且映射到其他的學習任務上。
  • ...谷歌推出首款基於機器學習的古埃及象形文字翻譯工具
    但是今天,藉助谷歌藝術與文化推出的新工具Fabricius,任何人都能以三種不同的方式體驗這門迷人的語言。首先,你可以通過六個簡單步驟來「學習」古埃及語言;其次,Fabricius將邀你「趣玩」文字,將你自己的語言和信息翻譯成象形文字,還可以分享給你的朋友和家人。
  • 谷歌推出首款基於機器學習的古埃及象形文字翻譯工具 Fabricius
    首頁 > 快訊 > 關鍵詞 > 谷歌最新資訊 > 正文 谷歌推出首款基於機器學習的古埃及象形文字翻譯工具 Fabricius
  • 從星際2深度學習環境到神經機器翻譯,上手機器學習這些開源項目必...
    雖然研究者們在機器學習領域取得了讓人興奮的成果,不過我們仍然處於機器學習發展的早期階段。對於剛接觸機器學習的開發者來講,想要理解什麼是機器學習,首先要搞懂三個部分:輸入、算法、輸出。算法:如何處理和分析數據機器學習算法可利用數據執行特定的任務,最常見的機器學習算法有如下幾種:1.監督學習。監督學習使用以及標註過的和結構化的數據,通過制定一組輸入數據集合所需的輸出,機器可以學習如何識別目標並且映射到其他的學習任務上。
  • 谷歌推出首款基於機器學習的埃及象形文字的數字翻譯工具Fabricius
    谷歌推出首款基於機器學習的埃及象形文字的數字翻譯工具Fabricius 來源:TechWeb • 2020-07-16 09:07:54
  • AWS打造AI機器學習工具箱,工業領域機器學習成亮點
    「機器學習是我們這一代人能遇到最具顛覆性的技術之一,目前已經有超過10萬客戶在使用AWS的機器學習服務,很多客戶已經將機器學習用於其核心業務。」 近日,AWS全球機器學習副總裁Swami Sivasubramanian (簡稱Swami) 在亞馬遜re:Invent大會上發表機器學習和人工智慧主題演講時講道。
  • 做機器學習相關工作,需要哪些技能 ?(附資源連結)
    考慮到你剛剛起步,我覺得你可以專注於那些很快會發展起來的架構:神經網絡,單指令流多數據流(SIMD)向量計算(比如說GPU)。神經網絡最近 10 年內開始革命性地顛覆自然語言處理、機器視覺、語音識別和其他領域。鑑於它的強大,這個影響還會繼續下去。綜上,我會選擇諸如 GPU 加速這類算法來自學和實現,再加一些分布式資料庫的知識。
  • 機器喵大作戰 | 解剖人工智慧、機器學習和深度學習
    由「專家」先把數據的特徵標記好,交給機器來學習這些特徵,然後,機器會得到一個「模型」。這個過程,稱之為訓練。全書用白話講解,幫你從生活案例中理解算法,發現算法的樂趣,再把算法應用到機器學習中,讓你零基礎掌握算法精髓,快速進入人工智慧開發領域。  《AI速成課:從AI編程到構建智能軟體》
  • 從「機器兒童」到「機器學習」:「學習」的概念是如何變化的?
    然而在鮮有人問津的論文後半段中,圖靈還對於人工智慧的前景做出了他的藍圖:建造一個可以學習的機器。圖靈在文章中對於建造學習機器的構想是這樣的:「與其去建造一個程序去模擬成年人的心靈,為什麼不去建造一個模擬兒童心靈的機器呢?如果能夠成功的話,假以適當的教育,這個『機器兒童』有朝一日可以具備一個正常成年人的心智。」
  • 機器翻譯、詞典與英語學習
    2) 機器翻譯也許會替代一部分人工翻譯,但不能因為機器翻譯的發展而停止語言學習,因為機器翻譯尚不能嵌入在我們的大腦中,我們必須要通過長時間刻苦學習才能掌握一門語言。3) 機器翻譯能夠幫助我們更好得學習語言,但也可能會影響我們的語言學習質量。4) 要想真正掌握一門語言,必須要查詞典,了解文字背後更為豐富的知識內涵。
  • 從蘋果店員到機器學習工程師:學習AI,我是這樣起步的
    一些人認為深度學習可以被稱為 AI;另一些人則認為除非完全通過圖靈測試,否則就不算 AI。缺乏定義這一問題確實給我入門人工智慧前期造成了很多麻煩,如果你在學的東西有很多種不同的定義,那麼學習它真的很難起步。所以我們先拋開定義。
  • 在速變的區塊鏈行業,如何高效地學習與思考? |鏈捕手
    那麼為了要解決這類問題,我們需要用到什麼樣的數學原理與思想方法,而一旦我回歸到這個層面之後,我就嘗試開始自己思考,而不是去看前人做過什麼。這樣做的缺點在於如果你在一個成熟領域,你會做很多重複還可能是低水平的工作,遠遠不如那些大師做得到位。
  • 在速變的區塊鏈行業 如何高效地學習與思考? |鏈捕手
    那麼為了要解決這類問題,我們需要用到什麼樣的數學原理與思想方法,而一旦我回歸到這個層面之後,我就嘗試開始自己思考,而不是去看前人做過什麼。這樣做的缺點在於如果你在一個成熟領域,你會做很多重複還可能是低水平的工作,遠遠不如那些大師做得到位。在DeFi這種全新領域,這種思維方式能更快地讓我們向前推進,這個過程中要重視理工科思維,比如說數學基礎、邏輯推導。
  • 機器學習(Machine Learning)&深度學習(Deep Learning)資料(之一)
    《R語言參考卡片》 介紹:R語言是機器學習的主要語言,有很多的朋友想學習R語言,但是總是忘記一些函數與關鍵字的含義。那麼這篇文章或許能夠幫助到你7.《UFLDL-史丹福大學Andrew Ng教授「Deep Learning」教程》 介紹:本教程將闡述無監督特徵學習和深度學習的主要觀點。通過學習,你也將實現多個功能學習/深度學習算法,能看到它們為你工作,並學習如何應用 /適應這些想法到新問題上。
  • 人工智慧之機器學習ML 學習筆記乾貨
    而這個過程,跟一個嬰兒認識世界,獲取知識的過程是一樣的。培養機器建立人的認識的過程,就是「機器學習」。機器學習常見分類:1)有監督學習(supervised learning):從給定的訓練數據集中學習出一個函數,當新的數據到來時,可以根據這個函數預測結果。主要應用於分類和預測。
  • 8個頂級機器學習解決方案
    機器學習通常與人工智慧和深度學習結合使用,使用複雜的統計建模。這些複雜的系統可能在私有雲或公共雲中運行。在任何情況下,時間的推移都會促進機器學習:隨著更多數據被添加到任務中並隨著時間的推移進行分析,機器學習會產生更準確的結果。
  • 如何搭建你自己的「深度學習」機器?
    對於那些不能深度學習功能的GPU,本文將會一步一步的教大家如何構建一個自己的深度學習機器。深度學習系統本質上是在另一臺電腦上安裝一個具有深度學習的GPU。GPU是普通計算機和深度學習機器的主要區別。首先,檢測下你的GPU型號是否有在這個網站中列出,繼續閱讀下文,你就會知道如何用小於$1.5k的花費來裝備你的機器。
  • Quora 在 2017 年是如何運用機器學習的
    我們有一個機器學習(ML)體系對每個問題進行問題質量分類,並幫助我們區分高質量和低質量的問題。除了提問質量,我們也定義了一些不同的問題類型來幫助我們確定在之後的流程中該如何對待這個問題。最後,我們也做提問話題的標籤,來確定提問是關於什麼話題。
  • 八個面向開發人員的機器學習平臺
    21CTO導讀:軟體開發者現在可以使用以下機器學習平臺和工具作為資源,將機器學習功能無縫集成到自己的系統中。