一些琐碎+分不清的知识点

9 篇文章 1 订阅

机器学习部分

反向传播 (Back propagation)vs 梯度下降(Gradient descent)

反向传播算法是用来训练ANN的。简而言之,训练ANN就是通过反向传播代价,以减少代价为导向,调整参数。
调参的方式是采用梯度下降算法(Gradient descent),沿着梯度方向调整参数大小。
反向传播算法的推导可以看博客:反向传播算法具体推导过程

交叉熵

其中在soft target时,用到了raise the temperature策略,来提高soft target对应的cross entropy。

熵,说白了就是信息量。在dark knowledge论文中,Hinton提到利用soft target来提高交叉熵,就是要增大模型学到的信息量。(存疑)

为何CNN中的激活函数采用的是ReLU?

神经网络中常见的激活函数有sigmoid, tanh,而在CNN中我们最常使用的是ReLU。原因有一下三点:
1. 采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用ReLU激活函数,整个过程的计算量节省很多。
2. 对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失,无法完成深层网络的训练。
3. ReLU会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。

C++部分

字符串处理函数

  1. 长度函数int strlen(const char s[]):返回字符串中的字符个数,不计尾零。sizeof()计尾零。
  2. 复制函数char * strcpy(char to[], const char from[])
  3. 拼接函数char * strcat(char s1[], const char s2[]):返回指针指向s1串。
  4. 比较函数int strcmp(const char s1[], const char s2[]):按从前到后顺序逐个比较对应字符的ASCII码值。若s1中的字符串大于s2中的则返回值大于零;若两字符串相等,则返回0;否则返回值小于零。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值