dawrehxyz

Lab 1

Apr 15th, 2019
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.67 KB | None | 0 0
  1. function [grad_W, grad_b] = Compute_Gradients(X, Y, P, W, lambda)
  2.  
  3. d = size(X, 1);
  4. N = size(X, 2);
  5.  
  6. n_b = 1;
  7. ones_n_b = double(zeros(n_b, 1) + 1);
  8. random_data_indices = randsample(N, n_b, true);
  9.  
  10. X_Batch = X(:, random_data_indices)
  11. Y_Batch = Y(:, random_data_indices)
  12. P_Batch = P(:, random_data_indices)
  13.  
  14. G_Batch = -(Y_Batch - P_Batch)
  15.  
  16. grad_W = (1 / n_b) * G_Batch * X_Batch' + 2 * lambda * W;
  17. grad_b = (1 / n_b) * G_Batch * ones_n_b;
  18.  
  19. end
  20.  
  21.  
  22.  
  23.  
  24.  
  25. function P = Evaluate_Classifier(X, W, b)
  26.  
  27. N = size(X, 2);
  28. K = size(W, 1);
  29. P = zeros(K, N);
  30.  
  31. for column = 1:N
  32.     s = W * X(:,column) + b;
  33.     p = exp(s);
  34.     p = p / sum(p);
  35.     P(:,column) = p;
  36. end
  37.  
  38. end
Advertisement