面经算法(自我评测)

1、请写出sgd伪代码

# coding=utf-8
'''
随机梯度下降
'''

import numpy as np

x_data=np.arange(0,2,0.2)

y_label=np.full(len(x_data),1)

input_data=np.array([y_label,x_data]).T
output_data=3*x_data+3+np.random.randn(len(x_data))
w=np.random.randn(2)
print(w)
iter_max=1000

i=0
alpha=0.01
erro=np.zeros(2)
eplise=1e-5
print(erro)
while i<iter_max:
    i+=1
    for j in range(len(x_data)):
        diff=np.dot(w,input_data[j])-output_data[j]
        w=w-alpha*diff*input_data[j]
    if np.linalg.norm(w-erro)<eplise:
        break
    else:
        erro=w
print('梯度下降法结果\n')
print('循环%d次'%iter_max,'权重w:[%f,%f]'%(w[0],w[1]))






2、softmax优点:

  1)输出层输出值的范围不确定

  2)真实标签是离散的,无法确定这些离散值与不确定输出值值之间的误差

因此,我们将输出变为正且和为1的概率分布

3、

猜你喜欢

转载自blog.csdn.net/weixin_38740463/article/details/93890507