<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 【學習人工智能】線型回歸和sigmoid回歸(附實戰) 程序猿 **深度學習篇:線型回歸和sigmoid回歸** **本篇難度系數:2星** 本來想給這篇文章寫個難度1星,但聯想到本人較為弱勢的數學,姑且還是給個2星吧。sigmoid回歸是logistic回歸的一種,而logistic regression和線型回歸也是近親,本質都是一個東西。那么說回歸回歸,回歸是個啥? 其實很好理解,通俗意義上講,線型回歸就是讓你找一條直線把兩種(或多種)類型的標簽分為兩類(或多種),**而sigmoid回歸就是讓你找一條直線,把經過sigmoid化后的輸入數據與模型的乘積分成兩類。** 有同學立刻問,什么是sigmoid,為什么要用sigmoid。 這個問題要從sigmoid是什么開始說起。 sigmoid函數并不難,就是這么個東西。 ![](https://pic3.zhimg.com/80/v2-2a031e558c106978217f90f068d3f152_hd.jpg) **注意,x可以是數,可以是向量,sigmoid一個向量的意思,就是分別對期中的每一個元素做sigmoid。**那么為什么要搞這么個東西。因為這個東西長這樣。 ![](https://pic3.zhimg.com/80/v2-a70953eb94c0b143ca236fb7e2ca7192_hd.jpg) 比如你的x>8,那么,那么sigmoid可以基本上把它歸為1類,但是如果你的函數是y=x,這個label也就是y可就是8了,這是很不方便的。有同學又說,為什么不搞個符號函數, ![](https://pic4.zhimg.com/80/v2-ece5ff0e4f2fe9767354588932e8a6df_hd.jpg) 這是好問題,答案是,很難求導。又有人問,為什么要求導?我們不用急,接著往下看。 sigmoid回歸問題最重要的幾個公式: ![](https://pic3.zhimg.com/80/v2-cfb6f8149c9ec2d192c6df3d0932d43e_hd.jpg) 這個好理解,就是一個簡單的矩陣相乘公式。這個h是在算概率呢。 那么出現 label = 1的標簽的時候,其概率為h,出現 label = 0 的標簽的時候,其概率為 1-h,即: ![](https://pic2.zhimg.com/80/v2-01823db4bd5ad7e72f42c50ea5fe44fd_hd.jpg) 因此我們可以得到綜合概率函數: ![](https://pic2.zhimg.com/80/v2-92720308c9c1a2a19e69f1639f3ca0b5_hd.jpg) 由這個綜合概率函數,我們可以得到似然函數 ![](https://pic1.zhimg.com/80/v2-1745d1cc5c4c3a75abb86e44fa050d38_hd.jpg) 這個東西簡單,這個東西不就是你把所有的樣本給乘起來,我們默認這些樣本是獨立同分布的。共有m個樣本。 下面搞了個對數,為的是化簡的時候能把累加乘 (\\Pi) 改成累加加 (\\sum) ![](https://pic1.zhimg.com/80/v2-54d3039a95e7e5aa67338ffd7f763a70_hd.jpg) 然后對這個東西去求導,原諒我實在不想一步一步地去求導了,我直接貼別人的公式了。 ![](https://pic4.zhimg.com/80/v2-35adc121181b4bd363504e7502e048eb_hd.jpg) 請注意,上面的theta就是我自己公式里面的W,這是一個東西。**這里應該有一個問題,那就是我們為什么要對 J 去求導,我們可以基本上認為,J就代表那個似然函數,我們當然希望我們的模型可以盡最大的可能性去往 J 上去貼,換句話說,我們希望我們的模型盡可能的準,也就是求最大值,而導數可以幫我們逐步地找到這個最大值。** ![](https://pic2.zhimg.com/80/v2-b3af16d21270b9def06dbd7d7033304d_hd.jpg) 這個公式是元素的形式,對我們來說還是太復雜了,我們把它轉化一下。 ![](https://pic3.zhimg.com/80/v2-0aeda42dce7bbc779a54e279466475ea_hd.jpg) 于是,更新公式為: ![](https://pic1.zhimg.com/80/v2-540a908db260adb1b75596593baea1dc_hd.jpg) **對于編程來說,我們需要這個就夠了。** **(1)one hot** 首先我們寫一個 make one hot 函數: ~~~text def make_one_hot(data1, out): return (np.arange(out)==data1[:,None]).astype(np.integer) ~~~ 這個函數有什么用?比如說你的輸入是 y = \[1,0,1\].T 他會給你轉變成: ~~~text [[0 1] [1 0] [0 1]] ~~~ 沒看出規律我們再來一個: y = \[1,2,4,0\].T 他會給你轉變成: \[\[0 1 0 0 0\] \[0 0 1 0 0\] \[0 0 0 0 1\] \[1 0 0 0 0\]\] 這回應該看出規律了吧。 **(2) sigmoid** ~~~python3 def sigmoid( x): return 1.0/(1+np.exp(-x)) ~~~ 沒什么可說的。 **(3) logistic regression** ~~~python3 def logisticRegression(x, y): m,n = np.shape(x) alpha = 0.001 maxCycles = 5000 w = np.ones((n,2)) for k in range(maxCycles): h = sigmoid(x.dot(w)) error = (h - y) w = w - alpha * x.transpose().dot(error) return w ~~~ ![](https://pic1.zhimg.com/80/v2-540a908db260adb1b75596593baea1dc_hd.jpg) **請注意這句話(數學公式)在代碼中哪一個位置出現**。編程是容易的,因為我們僅僅使用數學推導的結論就可以了。注意:m是常數,我們直接用\\alpha 去替代 \\alpha/m, 這是沒有問題的。 **(4)準確率檢測** ~~~text def acc(xs,ys,w): p = sigmoid(xs.dot(w)) p = np.argmax(p,1) s = 0 for i in range(len(p)): if p[i] == np.argmax(ys[i]): s += 1 return s/len(p) ~~~ 也沒什么可以說的,就是比對吻合的樣本除以總數的百分比。 總結一下,其實logistic regression最核心的東西就是對**極大似然**和**梯度下降**的這兩個東西的運用。**而極大似然的本質就是根據樣本也就是x的分布規律虛擬出一個模型出來**。(這個模型是現實中不存在的,但是人們認為這個模型存在所以使得樣本符合某種規律),然后我們又通過 **梯度下降** 的方法不斷地微調我們的模型 W 能夠使得似然概率盡可能的大,而且似然函數我是存在一個極大值點的,也就是我們輸出的logit能盡可能的吻合真正的label。當梯度下降過程收斂的時候,我們的模型達到了最優的情況,從而達到有效分類的目的,這就是邏輯回歸的本質。 **另外:那些注重學術探討的人,懂得就事論事的人是朋友,是會受到歡迎的人;那些自己什么有價值的東西都說不出來,在一旁指點江山的人是渣滓,是會被社會淘汰的**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看