未完成的hw3

新建脚本文件,最後得到的答案是錯的,運行了一個loop就結束了==

a=1:14;

 b=1:3;

 c=1:148; %代表矩陣維度

 T=x(:,1:3);%目標數組

 fai=ones(148,14);%輸入

 fai(:,2:14)=x(:,4:16);

 w=zeros(14,3);%w數組

 e1=0.1;

 e2=0.2;%前後兩個error值,方便比較error的變化

 while(abs(e1-e2)>0.000001)

    Ak=fai*w;%計算Ak

    Ak=exp(Ak);

    Ak(:,4)=sum(Ak,2);

    e=0;

    for n=c

        for k=b

            Y(n,k)=Ak(n,k)/Ak(n,4);%計算Y矩陣

            e = e - T(n,k)*log(Y(n,k));%計算error函數

        end

    end

    Y

    e2=e1

    e1=e

 

    e_dev=zeros(3,14);%計算一階導數

    for j=b

        for n=c

            e_dev(j,:)=(Y(n,j)-T(n,j))*fai(n)+e_dev(j,:);

        end

    end

 

    H1=zeros(14,14);%計算Hessian矩陣

    for n=c

        H1 = H1 + Y(n,1)*(1-Y(n,1))*fai(n)' * fai(n);

    end

     H2=zeros(14,14);

    for n=c

        H2 = H2 + Y(n,2)*(1-Y(n,2))*fai(n)' * fai(n);

    end

    H3=zeros(14,14);

    for n=c

        H3 = H3 + Y(n,3)*(1-Y(n,3))*fai(n)' * fai(n);

    end

 %更新w值

    w(:,1)=w(:,1)-pinv(H1)*e_dev(j,:)'

    w(:,2)=w(:,2)-pinv(H2)*e_dev(j,:)'

    w(:,3)=w(:,3)-pinv(H3)*e_dev(j,:)'

end

转载于:https://www.cnblogs.com/lzq031/p/5120024.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值