在线神经网络
onn的Python项目详细描述
在线神经网络(onn)
这是Online Deep Learning: Learning Deep Neural Networks on the Fly文件的pytorch实现。该算法包含了一种新的反向传播方法,称为对冲反向传播,它有助于在线学习。在这个算法中,你要建立一个覆盖网络的架构,算法会尝试自动打开或关闭一些隐藏层。这个算法使用第一个隐藏层来训练/预测,但是如果它变糟了,它会自动使用另一个隐藏层。有关更多信息,请阅读“参考资料”部分的文章。
安装
pip install onn
如何使用
#Importing Libraryimportnumpyasnpfromonn.OnlineNeuralNetworkimportONN#Starting a neural network with feature size of 2, hidden layers expansible until 5, number of neuron per hidden layer = 10 #and two classes.onn_network=ONN(features_size=2,max_num_hidden_layers=5,qtd_neuron_per_hidden_layer=10,n_classes=2)#Do a partial trainingonn_network.partial_fit(np.asarray([[0.1,0.2]]),np.asarray([0]))onn_network.partial_fit(np.asarray([[0.8,0.5]]),np.asarray([1]))#Predict classespredictions=onn_network.predict(np.asarray([[0.1,0.2],[0.8,0.5]]))Predictions--array([1,0])
新功能
- 该算法现在可用于批处理。(不建议这样做,因为这是一种在线方法。这对实验很有用。)
- 该算法可以使用cuda(如果可用)。(如果网络非常小,则不建议使用。CPU将处理得更快。)
非线性上下文bandit算法(onn_ths)
onn_ths的行为就像一个非线性的上下文盗贼(一个强化学习算法)。该算法使用非线性开发因子(onn)和汤普森抽样算法提供的勘探因子。onn_this与“select”和“reward”操作一起工作。有关更详细的示例,请查看此存储库中的jupyter笔记本文件。这个算法是我为解决我工作的公司的一个问题而创建的。
该算法最大的优点是可以在线使用,并且具有非线性开发。该算法能以强化学习的方式学习不同类型的数据。
如何使用
#Importing Libraryimportnumpyasnpfromonn.OnlineNeuralNetworkimportONN_THS#Starting a neural network with feature size of 2, hidden layers expansible until 5, number of neuron per hidden layer = 10 #and two classes.onn_network=ONN_THS(features_size=2,max_num_hidden_layers=5,qtd_neuron_per_hidden_layer=10,n_classes=2)#Select an actionarm_selected,exploration_factor=onn_network.predict(np.asarray([[0.1,0.2]]))#Reward an actiononn_network.partial_fit(np.asarray([[0.1,0.2]]),np.asarray([arm_selected]),exploration_factor)
贡献者
参考文献
- Online Deep Learning: Learning Deep Neural Networks on the Fly
- A Survey of Online Experiment Design with the Stochastic Multi-Armed Bandit