从机器学习到放射学,这个学习工具链助你起步
想用机器学习的方法了解放射学吗?这可不是件容易的事情。
深度学习,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垂类自媒体 “读芯术”