博主位址)。
如同logistic回歸原理一樣,均可以視為一種對映關係:x->z->y,只不過softmax回歸是進行多分類的而已。下面給出softmax回歸的假設函式。
我們的目的很簡單,就是對於每乙個輸入的x,假設函式都能輸出x屬於每乙個類別的概率。如圖所示,右側的函式構造即可滿足我們的要求。其中,分母項是為了歸一化,使得概率之和為1.
值得一提的是,1的意思是指,當yi等於j時,值取1.
然而,這個代價函式通常會加入懲罰項,使其變成乙個嚴格凸函式,易於迭代進行優化:
求導之後:
值得一提的是,在實際應用中經常使用最大似然與交叉熵作為其代價函式。
logistic回歸可以視為softmax進行二分類時的特例,即當類別數為2
時,softmax 回歸退化為 logistic 回歸,由於數學學的不好,所以就不多推導了。
好了,東西都已經講完了,那麼可以上**了,當然,這次還是用tensorflow來做的。記得昨天老師居然很吃驚我的機器能跑tf,為了證明我的電腦真的很可以,所以這次我要用我的副電腦蘇菲pro跑一波mnist資料。
# -*- coding: utf-8 -*-
"""created on sun apr 1 17:19:07 2018
@author: dzf_zuishuai
"""import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
#匯入mnist
mnist = input_data.read_data_sets("mnist_data/", one_hot = true)
x = tf.placeholder("float", [none, 784])
#w = tf.variable(tf.zeros([784,10]))
b = tf.variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x,w) + b)
# loss
y_ = tf.placeholder("float", [none, 10])
#定義交叉熵
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
# 隨機梯度下降
train_step = tf.train.gradientdescentoptimizer(0.01).minimize(cross_entropy)
# 初始化
init = tf.initialize_all_variables()
# session
sess = tf.session()
sess.run(init)
# 迭代
學習心得 python學習心得
自從來了深圳工作以後,尤其是屢屢面試碰壁以後。發現其實自己的知識面很窄,做筆試題的時候絞盡腦汁還是漏洞百出,並不是不會做,而是出現一大堆不該有的失誤。每次被問道,對資料庫了解嗎?說一大堆看起來很高階的東西 好啊,那我們寫幾個sql語句吧。馬上完蛋了,沒了手冊關鍵字都記不起。了解哪幾種指令碼語言,sh...
學習心得 我的學習心得
我是乙個已經步入中年的70後,離開校園已經20年了,因為當年的政策因素而未能圓我的大學夢,在20年的工作過程中總是因為缺少一張大學文憑而失去了很多機會,曾經也考慮過自考,但是乙個人去面對的時候總感覺心有餘而力不足。2018年3月份偶然讓我認識了尚德,原來自考還可以這樣學習。一直懷疑自己年紀大了記憶力...
機器學習 Softmax推導
lr可以看成是softmax的特例。lr主要是用於二分類,如果面臨的是多分類問題,可以用softmax。softmax通常也是深度學習影象識別網路的最後一層。在lr中,引數 是乙個向量,而在softmax中,引數可以看成是乙個矩陣。也就是每乙個輸出都對應著乙個引數向量 h xi p yi 1 x i...