Skip to main content

Posts

偏执值的意义

神经元的输出,在作用激励函数(也有称激活函数)之前,是权重和输出的点积,形如: w·x+b的形式,wx可以理解,b代表什么意思? 最初的最简单神经网络,输入输出是线性变换,当权重和输出的点积大于某一个阈值的时候,输出1,否则输出2.如下 wx>t------输出1 wx<t------输出0 t衡量输出1的难易度。这个算式变换一下: wx-t>0----输出1 wx-t<0----输出0 我们用b代替-t。这就是偏执值。所以b也是衡量激活难易的参数。这一方式貌似发展到有激活函数的神经网络后就用处不大,比如有的网络就取消了b参数简化运算。

python中星号(*)的用法

这里不说乘法,大家都知道 先看几个测试语句: import numpy as np a=np.random.rand(2) print(a) print(*a) 输出结果: [0.95721482 0.55708755] 0.9572148191916312 0.5570875529243636 数列被变成空格分成的数据,是不是字符串呢?我们再检验一下: b=(*a).split(" ") 输出错误提示: File "cell_name" , line 7 SyntaxError : can't use starred expression here 看来标星的变量不能这么用,经过验证,也不能赋值给别的变量,比如不能c=(*a),是不是分解成两个独立的数据呢?比如函数的参数有多个并且不确定数量的时候,也用*arg这种形式。我们测试一下 import numpy as np def add(a,b): return a+b a=np.random.rand(2) print(a) c=add(*a) print(c) 结果:[0.03414016 0.46147024] 0.4956103991927776 猜想正确。*只能用在迭代类型上,比如元组,列表

贪婪算法

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。 例如: 背包问题 有一个背包,背包容量是M=150kg。有7个物品,物品不可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。 物品 A B C D E F G 重量 35kg 30kg 6kg 50kg 40kg 10kg 25kg 价值 10$ 40$ 30$ 50$ 35$ 40$ 30$ 贪婪算法可以是一下几种: 1:选区价值最高者 2:选区重量最小者 3:选区单位价值最大者