機器學習心得(三) softmax回歸

2021-08-18 00:23:10 字數 2175 閱讀 4287

博主位址)。

如同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...