从机器学习到放射学,这个学习工具链助你起步

全文共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一起安装。

从机器学习到放射学,这个学习工具链助你起步

https://imgs.xkcd.com/comics/python_environment.pn

Anaconda

Anaconda是一个开源平台,可能是在Linux,Mac OS X和Windows上使用Python进行机器学习的最简单方法。它可以帮助管理编程环境,它还包含数据科学中常用的Python包。

各平台版本传送门:https://www.anaconda.com/distribution/

在系统上安装完适用的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:用于高效处理数组和矩阵的库

传送门:http://www.numpy.org/

SciPy:处理数学和科学问题的工具包

传送门:https://www.scipy.org/

matplatlib:Python中的标准2D绘图库

传送门:https://matplotlib.org/

pandas:含有矩阵式数据结构,标记索引,时间函数等功能的库

传送门:https://pandas.pydata.org/

Scikit-learn:机器学习算法库

传送门:https://scikit-learn.org/stable/

Jupyter:在基于网络的笔记本中运行的交互Python shell

传送门:https://jupyter.org/

Seaborn:用于统计数据可视化

传送门:https://seaborn.pydata.org/index.html

Bokeh:用于交互数据可视化

传送门:https://bokeh.pydata.org/en/latest/

PyTables:HDF5库的Python包装器

传送门:https://www.pytables.org/

用户可以使用Anaconda安装以上包及相应的依赖项,同时也可以在新创的环境中搜索需要的包。

从机器学习到放射学,这个学习工具链助你起步

在Anaconda Navigator中搜索你需要的包

然后,通过选中复选框并单击“apply”,从列表中选择它们需要的包。

从机器学习到放射学,这个学习工具链助你起步

接下来就是像前文描述的那样,运行pip指令安装TensorFlow和Keras。(如要使用苹果系统的CoreML,还可以安装Turi Create)

从机器学习到放射学,这个学习工具链助你起步

pip

pip是通用的python包管理器。详情传送门:https://pypi.org/project/pip/

pip install — upgradepip

使用pip安装某个包,可以输入以下命令:

pip install<package_name>

从机器学习到放射学,这个学习工具链助你起步

编辑Python文件

在Mac上的终端或Windows中的控制台上可以与python进行交互。如果要写代码,大部分人会使用Atomhttps://atom.io/或Sublime Text https://www.sublimetext.com/等代码编辑器。尽管目前已出现了各种各样的编辑器,但大部分很快就湮灭在代码编辑器的历史长河中。

不少人喜欢的一款编辑器是Atom(https://atom.io/),这是由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笔记本(https://jupyter.org/)是一个基于网络浏览器的开源应用。这个笔记本可以让用户在更方便自如的环境中运行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

从机器学习到放射学,这个学习工具链助你起步

然后……

斧头磨利之后就要开始砍树啦!那该如何入门真实的放射学信息呢?

先看看以下链接:

1. 基于机器学习的医学影像:https://pubs.rsna.org/doi/10.1148/rg.2017160130

2. 深度学习:放射科医师的入门读物:https://pubs.rsna.org/doi/10.1148/rg.2017170077

如果想继续钻研,可以查阅以下两个专门讨论该主题的期刊:

1. JACR 2018年3月第15卷第3PB期《特刊数据科学:大数据,机器学习和人工智能》

2. JDI 2018年6月31卷第3期《开源软件新焦点》

当然还可以看看GitHub中其他的参考资料,它们一定也能带来新启发:

1. https://github.com/ImagingInformatics/machine-learning

2. https://github.com/slowvak/MachineLearningForMedicalImages

终于要开始了!

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)(https://link.springer.com/article/10.1007/s10278-018-0079-6)

我们的工作并不只是创建一个分辨狗与猫的分类器,而是一个分辨胸部与腹部的x光分类器。AI之旅始于这里!

从机器学习到放射学,这个学习工具链助你起步

留言 点赞 关注

我们一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

相关推荐