![]() | 🍿*★,°*:.☆欢迎您/$:*.°★* 🍿 | |
目录
背景
正文
总结
背景描述
| 一直想和困惑的是为什么深度学习需要 梯度下降 ,有没有 可以替代的方法终于在使用 等比向量 解决了一个输入输出 只能求解一个权重解的时候,发现可以 求解权重个行数的通解,虽然暂时不能像梯度下降那样求解,多个权重层 ,但是单一的权重层是可以求解的,可以 增加权重的行数来 增加权重的表达能力 | |
正文
下面是写了一个求解的简单例子,由于等差向量求解只能针对一个数据,说以就不写例子了
from sympy import Symbol,solve
import numpy as np
def new_weight(row_dim,col_dim):
weight=[]
for i in range(row_dim):
col_weight=[]
for j in range(col_dim):
col_weight.append(Symbol('x{}{}'.format(i,j)))
weight.append(col_weight)
return weight
def get_weight(input_data,output_data,weight):
weight_list=[]
weight=np.array(weight)
for j, one_weight in enumerate(weight.transpose([1, 0])):
f_list = []
for i,d in enumerate(input_data):
f=np.sum(one_weight*np.array(d))-output_data[i][j]
f_list.append(f)
res_weight=solve(f_list,one_weight.tolist())
weight_list.append(list(res_weight.values()))
return np.array(weight_list).astype("float").transpose([1,0])
if __name__ == '__main__':
weight=new_weight(2,4)
# 权重有2行 所以只需两数据方可解方程得到 所有权重参数
input_data=[[3,6],[5,9]]
output_data=[[7,9,12,14],[14,18,24,28]]
# 求解weight
weight_data=get_weight(input_data,output_data,weight)
# 结果验证
print(np.array(input_data)@weight_data)
总结
这个应该可以解决一些,拟合的问题的求解,至少不需要 梯度下降了,也提供了一个
拟合求解的新思路,或许你的大脑就是这样的确定性的求解不断的拼接而成的。比起梯度
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由东方佑原创
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨