编程神经网络

kkp*_*nu9 1 networking artificial-intelligence calculus training-data neural-network

所以我已经阅读了一些关于神经网络的内容,我听到了与输入,输出,权重,激活函数,隐藏层,3层方法和一些微积分有关的内容,但这与编程有什么关系呢?一个真实的神经网络.我正在讨论if语句,while循环,类,字符串,数组,散列和排序.输入,输出,权重,激活函数和微积分与实际编程有什么关系.特别是微积分部分.你如何编写可以"训练"神经网络/程序的代码.我很确定我觉得我在问初学者问题.

Her*_*uin 5

首先,抱歉我的英语不好.

神经网络(主要)包含:

  • 神经元
  • 这些神经元被组织成一组神经元:输入神经元,输出神经元和"认知"神经元.
  • 这些神经元彼此有联系
  • 激活神经元将信息发送到与其链接的神经元

从编程的角度来看,您可以将其视为:

  • 神经元是一类
  • Neuron类包含一系列"连接"(对其他神经元的引用,有时具有相关的随机权重).
  • Neuron类有一个像"recievePulse"这样的方法来计算神经元是否激活.
  • Neuron类有一个像"sendPulse"这样的方法,可以激活它所连接的神经元的"recievePulse".

recievePulse是你的激活功能

体重是每个神经元发送给它所连接的神经元的脉冲强度

这样你就拥有了一个基本的神经网络.

这个怎么运作 :

一些定义的神经元接收具有不同重量的脉冲.这些是网络的感觉,即"输入".它们可能会被激活并发出脉冲,具体取决于您给出的输入."输出"是一组定义的神经元.当您激活输入神经元时,某些输出神经元可能会激活,模拟对输入的响应.

然后,您可以停用所有神经元,然后使用其他输入重新开始.

通过这种方式,您可以使用基本的神经网络对其感知的内容做出反应.

输入/输出示例:

  • 输入1:蓝色量
  • 输入2:绿色量
  • 输入3:红色量
  • 输出1:"我喜欢这种颜色"
  • 输出2:"我不喜欢这种颜色"
  • 在输入和输出之间有一堆神经元("认知部分").

该网络将完成颜色并决定它是否喜欢.

训练:

有几种方法可以训练神经网络.

例如,你可以在他们的回答良好时(通过提高所有活动连接的权重)奖励神经元,并在他们的答案不好时(通过减少连接的重量)给予他们不好的奖励.

每个神经元之间不同的连接权重可以用一种DNA来编码,这种DNA告诉神经元的结构等.这样你就可以选择具有健身功能的"获胜者"和"松散者",并重现那些得到最佳答案的大脑.他们.通过这种方式,您可以选择最好的大脑并让它们进化成为超级天才.

有关此内容的更多信息,我建议您记录自己的人工生活和健身功能.