在我刚开始学习GS的时候,我是从混合线性模型(LMM)的基础上理解的,因为动物模型BLUP,所以基因组选择GBLUP,再所以一步法ssGBLUP。
在我刚开始学习GWAS时,我是从T检验和方差分析开始的,后来到混合线性模型(LMM),觉得很顺。
在我开始学习贝叶斯系列时,机器学习已经成熟,随机森林、支持向量机,应用广泛。
在我开始学习机器学习时,神经网络、强化学习又开始了……
焦头烂额的我内心深处喊出来:喂,喂,喂,我只是个农学的学生,大农业是我的强项,为何要在统计的路上越走越远?
还要学习神经网络,学个神经呀!
但我的理性告诉我:先进技术,只能本专业的去学、去利用。互联网、计算机、数学的同学都去银行、金融、互联网去了,那里的发展更好,薪水更高。于是,农学的学生磕磕绊绊的利用先进的技术(机器学习、神经网络)去进行农业数据的分析。不要把希望寄托在别人身上,自己学科的事情,自己去解决吧,遇山开路,遇水架桥。
当你还在GBLUP或者贝叶斯类方法进行优化时, 我带着卷积神经网络进行了降维打击…
Crossa, José, Pérez-Rodríguez, Paulino, Cuevas J , et al. Genomic Selection in Plant Breeding: Methods, Models, and Perspectives[J]. Trends in Plant Science, 2017:S136013851730184X.
全基因组选择(Genomic selection)可以大大加快育种进程, 这篇文章从以下几个方面进行讨论:
GS的优势在于, 可以通过基因型值, 直接检测孟德尔抽样, 这样就不需要多地点的测试去计算孟德尔抽样.
左边为常规育种, 右边为GS加入的育种流程.
这里默认是一年两个世代(A和B), 比如A夏播, B是南繁.
GBLUP, RRBLUP, 贝叶斯类的方法, 本质上是线性核心(Linear core), 其实可以把GS当做分类的选择, 应为GS本质上是为了选择好的, 中等的, 低的, 可以当做分类器的问题, 这样就可以用很多机器学习的算法进行运算.
机器学习分类器用于GS的优势: 通过训练群体, 能够将符合某类标准的个体以最大可能的概率挑选出来, 而不是计算所有可能的结果(Using classifiers in GS is attractive because they are trained to maximize the probability of an individual beingamember of the target class, rather thansearchingfor its overall performance)
研究表明, 特别是针对于一些非加性效应(比如杂种优势), 考虑基因与环境互作, 神经网络类的(nolinear core)机器学习方法预测的效果更好.
与其临渊羡鱼,不如退而结网
现在机器学习各种算法层出不穷, 是时候拥抱新事物了.
比如下面几个常用的库, 跑起来.
Tensorflow Tensorflow把神经网络运算抽象成运算图(Graph),一个运算图中包含了大量的张量(Tensor)运算。而张量实际上就是N维数据的集合。神经网络运算的本质是通过张量运算来拟合输入张量与输出张量之间的映射关系。
Keras Keras被认为是最酷的Python深度学习库之一。如果你是深度学习开发方面的新手,那么非常建议你使用它。它提供了非常简明的机制来表达神经网络结构。它也提供了许多非常棒的工具用于神经网络模型的编译、数据的处理、以及网络结构的可视化等等。
Theano Theano 是一个用于多维数组计算的 Python 运算框架。Theano 的工作原理与 Tensorflow 相似, Theano还可以用于与Tensorflow类似的分布式或并行环境。
PyTorch PyTorch是最大的深度学习库,允许开发人员通过加速GPU执行张量计算,创建动态计算图,并自动计算梯度。除此之外,PyTorch还提供丰富的API,用于解决与神经网络相关的应用问题。
Scikits-learn Scikits-learn,又称为sk-learn,是一个基于Numpy与SciPy的Python库。Sk-learn被认为是用于处理复杂数据的最优秀的机器学习库之一。它包含了大量用于实现传统机器学习和数据挖掘任务的算法,比如数据降维、分类、回归、聚类、以及模型选择等。随着时间的发展,sk-learn不断演进。其中包括它加入了交叉验证功能,提供了使用多个衡量指标的能力。许多的训练方法都得到了一定的改进,如逻辑回归、近邻算法(KNN)等。
这里面, 以Tensorfolow
, PyTorch
和sklearn
最为常用, 先用这三个库进行学习, 将手中的数据跑起来.
当你还在GBLUP或者贝叶斯类方法进行优化时, 我带着卷积神经网络进行了降维打击…