程序实现 Softmax classifer, 没有隐含层,

f=wx+b

y=efi∑jefj

  1. %% Softmax classifier
  2. function Out=Softmax_Classifier(train_x, train_y, opts)
  3. % setting learning parameters
  4. step_size=opts.step_size;
  5. reg=opts.reg;
  6. batchsize = opts.batchsize;
  7. numepochs = opts.numepochs;
  8. K=opts.class;
  9. %% learn on the training set
  10. % initialize the parameters
  11. D=size(train_x, 2);
  12. W=0.01*randn(D,K);
  13. b=zeros(1,K);
  14. loss(1 : numepochs)=0;
  15. num_examples=size(train_x, 1);
  16. numbatches = num_examples / batchsize;
  17. for epoch=1:numepochs
  18. % % tic;
  19. % %
  20. % % sprintf('epoch %d: \n, ' , epoch)
  21. kk = randperm(num_examples);
  22. loss(epoch)=0;
  23. for bat=1:numbatches
  24. batch_x = train_x(kk((bat - 1) * batchsize + 1 : bat * batchsize), :);
  25. batch_y = train_y(kk((bat - 1) * batchsize + 1 : bat * batchsize), :);
  26. cc=repmat(b, batchsize , 1);
  27. scores=batch_x*W+cc;
  28. exp_scores=exp(scores);
  29. dd=repmat(sum(exp_scores, 2), 1, K);
  30. probs=exp_scores./dd;
  31. correct_logprobs=-log(sum(probs.*batch_y, 2));
  32. data_loss=sum(correct_logprobs)/batchsize;
  33. reg_loss=0.5*reg*sum(sum(W.*W));
  34. loss(epoch) =loss(epoch)+ data_loss + reg_loss;
  35. dscores = probs-batch_y;
  36. dscores=dscores/batchsize;
  37. dW=batch_x'*dscores;
  38. db=sum(dscores);
  39. dW=dW+reg*W;
  40. W=W-step_size*dW;
  41. b=b-step_size*db;
  42. end
  43. loss(epoch)=loss(epoch)/numbatches;
  44. if (mod(epoch, 10)==0)
  45. sprintf('epoch: %d, training loss is %f: \n', epoch, loss(epoch))
  46. end
  47. % % toc;
  48. end
  49. Out.W=W;
  50. Out.b=b;
  51. Out.loss=loss;
  52. end

机器学习 Softmax classifier (无隐含层)的更多相关文章

  1. 机器学习 Softmax classifier (一个隐含层)

    程序实现 softmax classifier, 含有一个隐含层的情况.activation function 是 ReLU : f(x)=max(0,x) f1=w1x+b1 h1=max(0,f1 ...

  2. 机器学习: Softmax Classifier (三个隐含层)

    程序实现 softmax classifier, 含有三个隐含层的情况.activation function 是 ReLU : f(x)=max(0,x) f1=w1x+b1 h1=max(0,f1 ...

  3. 机器学习:Softmax Classifier (两个隐含层)

    程序实现 softmax classifier, 含有两个隐含层的情况.activation function 是 ReLU : f(x)=max(0,x) f1=w1x+b1 h1=max(0,f1 ...

  4. 基于MNIST数据集使用TensorFlow训练一个包含一个隐含层的全连接神经网络

    包含一个隐含层的全连接神经网络结构如下: 包含一个隐含层的神经网络结构图 以MNIST数据集为例,以上结构的神经网络训练如下: #coding=utf-8 from tensorflow.exampl ...

  5. 基于MNIST数据集使用TensorFlow训练一个没有隐含层的浅层神经网络

    基础 在参考①中我们详细介绍了没有隐含层的神经网络结构,该神经网络只有输入层和输出层,并且输入层和输出层是通过全连接方式进行连接的.具体结构如下: 我们用此网络结构基于MNIST数据集(参考②)进行训 ...

  6. 理解dropout——本质是通过阻止特征检测器的共同作用来防止过拟合 Dropout是指在模型训练时随机让网络某些隐含层节点的权重不工作,不工作的那些节点可以暂时认为不是网络结构的一部分,但是它的权重得保留下来(只是暂时不更新而已),因为下次样本输入时它可能又得工作了

    理解dropout from:http://blog.csdn.net/stdcoutzyx/article/details/49022443 http://www.cnblogs.com/torna ...

  7. [DeeplearningAI笔记]序列模型2.6Word2Vec/Skip-grams/hierarchical softmax classifier 分级softmax 分类器

    5.2自然语言处理 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.6 Word2Vec Word2Vec相对于原先介绍的词嵌入的方法来说更加的简单快速. Mikolov T, Chen ...

  8. ubuntu之路——day13 只用python的numpy在较为底层的阶段实现单隐含层神经网络

    首先感谢这位博主整理的Andrew Ng的deeplearning.ai的相关作业:https://blog.csdn.net/u013733326/article/details/79827273 ...

  9. MLP神经网络 隐含层节点数的设置】如何设置神经网络隐藏层 的神经元个数

    神经网络 隐含层节点数的设置]如何设置神经网络隐藏层 的神经元个数 置顶 2017年10月24日 14:25:07 开心果汁 阅读数:12968    版权声明:本文为博主原创文章,未经博主允许不得转 ...

随机推荐

  1. [Vue + TS] Use Properties in Vue Components Using @Prop Decorator with TypeScript

    With properties we can follow a one-way parent→child flow communication between components. This les ...

  2. matlab 可视化 —— 高级 api(montage)、insertObjectAnnotation、insertMaker

    1. montage:同时显示多个图像 thumbnails = train_x(:, :, :, 1:100); thumbnails = imresize(thumbnails, [64, 64] ...

  3. java解压多目录Zip文件(解决中文乱码问题)--转载

    原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.F ...

  4. OC中对于属性的总结(@property)

    在没有属性之前: 对成员变量进行改动都要用到设置器:setter来改动 Person *per =[[Person alloc] init]; 对象通过设置器对成员变量内容进行修该 [per setN ...

  5. 编程一一C语言的问题,cpu中的专用寄存器

  6. python3 购物车小程序,余额写入文件保存

    python3 购物车小程序,余额写入文件保存 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan goods = ( ...

  7. python3 分解质因数

    python3 分解质因数 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan num = int(input(&quo ...

  8. javascript面对对象编程 之继承

    上一篇博客中为大家介绍了javascript面向对象编程原则的封装,今天为大家介绍继承.在javascript中没有类的概念,全部不能像c#.java语言那样.直接的用类去继承类.比方如今有比方.如今 ...

  9. rz、sz (上传下载)命令参数的解释

    $ man rz,查看帮助: -a, –ascii -b, –binary 用binary的方式上传下载,不解释字符为 ascii -e, –escape 强制escape 所有控制字符,比如 Ctr ...

  10. lettuce--Advanced Redis client

    redis官方提供的java client: git地址:https://github.com/mp911de/lettuceAdvanced Redis client for thread-safe ...