作者abc95007 (別理我)
看板Python
標題[問題] 多組數據線性迴歸
時間Mon Mar 5 14:54:43 2018
目前使用 python , 會些基礎的 tensorflow 跟 pytroch , 大概就回歸跟CNN部分
想請問目前工作上遇到的問題
x = np.linspace(0, 1, 255)[:, np.newaxis]
y = np.power(x, 2.2)
plt.scatter(x, y)
X 255 個點當中找出 30個點線性迴歸
但如果同時於
y1 = np.power(x, 1.8)
y2 = np.power(x, 2.2)
y3 = np.power(x, 2.6)
同時找出 y1,y2,y3 找出一組 X 30個點的線性迴歸
之後可能為更多組的 Y 找出共同的一組 X 30個點
https://i.imgur.com/nzou2NS.jpg
試問是否可用 deep learning 來處理?
或是還有其他方法?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.89.123
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1520232886.A.28D.html
※ 編輯: abc95007 (42.73.89.123), 03/05/2018 15:00:37
1F:推 goldflower: 看不太懂...什麼叫做255個點找出30個點做回歸03/05 15:12
更正一下
這應該也不能叫做線性回歸(?)
三條曲線上 要找出共同的一組30個X綁點
例如
(x(0),y1(0)), (x(6),y1(6)).....(x(255),y1(255))
共30個綁點可以代表第一條曲線
(x(0),y2(0)), (x(6),y2(6)).....(x(255),y2(255))
共30個綁點可以代表第二條曲線
以此類推
目的是想要找到 1~255之中
x=1,6....255, 30個最佳值綁點
※ 編輯: abc95007 (110.50.128.152), 03/05/2018 16:34:40
2F:推 vfgce: 你是要用30個點找出一個直線來擬合曲線?03/05 17:22
3F:推 vfgce: 然後你的30個點是給定的,還是要學習出來的?03/05 17:26
255裡面取30個點,不知道這30個點落在哪裡?
最後我是需要在12條曲線找出找出共同最佳的30個點
這應該就要學習出來吧??
想說用程式是跑應該有優雅一點的寫法
暴力解最後應該也是try的出來.....
※ 編輯: abc95007 (110.50.128.152), 03/05/2018 17:33:26
4F:推 vfgce: 這比較不像deep learning做的,比較像數學吧..03/05 17:43
5F:推 vfgce: 255點中取30點的組合就不像deep learning要處理的,03/05 17:46
6F:→ Kazimir: 資質愚鈍 我看不太出來選X的依據是什麼..03/05 17:53
7F:推 vfgce: 不過若是你的y,都是X的1次方以上,那麼斜率變化較小的前30點03/05 17:54
8F:→ vfgce: 就是要擬合直線最佳的30點...,當然不是次方而是其他函數03/05 17:55
9F:→ vfgce: 就不一定了.03/05 17:55
的確 其實比較像是數學問題啦
這問題主要是用來顯示器的顏色校正
像是矯正Gamma2.2 還有其他曲線
但255灰階當中的只能設定其中30個點
給與特定的電壓值
其餘的225個點就線性內插出來
※ 編輯: abc95007 (110.50.128.152), 03/05/2018 18:40:55
10F:推 EGsux: 這不是deep learning 阿 是 optimization03/05 18:47
11F:→ EGsux: 甚麼是最佳的30點 要講出來xd 03/05 18:48
12F:推 EGsux: 最常使用的30點嗎? 最平均分佈的三十點嗎? 03/05 18:50
13F:推 EGsux: 如果是代表曲線 你要用數學定義出"最佳"才可以用framework03/05 18:53
14F:→ EGsux: 去幫你做微積分03/05 18:53
第一條曲線中設定30個點可以任意設定值
其餘就內插
接下來算這255各點與原本的y1數據loss值,loss就用常用的方均根值
得到loss1,依此類推到loss12
loss總和最小的30各點就是我想求的
理論上頭尾刻度會切的較細,中間較粗
※ 編輯: abc95007 (110.50.128.152), 03/05/2018 19:01:09
15F:推 EGsux: 比如說 把你TF的 cost function 定為 x在0到255曲線下面積 03/05 18:56
16F:→ EGsux: 跟自定義直線面積的差 03/05 18:56
17F:→ Kazimir: 30個點是從y1上選的 可是一樣是用這條直線來算y2的loss 03/05 20:46
18F:→ Kazimir: 這樣嗎? 03/05 20:47
https://imgur.com/a/xy0HO
用畫的應該比較清楚
應該會有一組30個X點
使得各虛線與各條實線的面積總和最小值
※ 編輯: abc95007 (220.133.187.22), 03/05/2018 22:52:26
22F:推 vfgce: 所以你的曲線為12條不同的冪函數,那麼這30點一定是連續, 03/06 08:19
23F:推 vfgce: 否則X越散,Y越散,問題就簡化為從頭開始找連續的30點,所得 03/06 08:30
24F:→ vfgce: 的誤差最小,但若gamma值皆大於1,那麼就是前30點,若gamma 03/06 08:31
25F:→ vfgce: 值皆大於1,那麼就是後30點. 03/06 08:32
26F:→ vfgce: 這兩種狀況所得到的最佳解同時也是各曲線的最佳解. 03/06 08:32
27F:→ vfgce: 但若gamma值為>1及<1混合,那麼,這30點應該是往中間靠,就 03/06 08:34
28F:→ vfgce: 從第一點,開始算連續30點誤差,再來第二點算連續30 點, 03/06 08:35
29F:→ vfgce: 一直做下去,再看從那一點開始的連續30點所得誤差最小. 03/06 08:36
30F:→ vfgce: 這個最佳解就非各曲線的最佳解. 03/06 08:36
31F:→ vfgce: 總之,這根本不是deep learning. 03/06 08:37
32F:→ vfgce: 硬要用deep learning 解會弄得非常怪異.且未必得到最佳解 03/06 08:38
33F:推 EGsux: 其實這是微積分的問題 說不定用 excel也解的出囧 03/06 09:37
34F:→ EGsux: 你把tf跟pytorch當成微積分工具就好 不要管 DL甚麼的 03/06 09:38
35F:推 EGsux: 而且理論上頭尾都比較接近直線所以點沒那麼多才對吧 03/06 09:46
36F:推 CaptPlanet: 起手式 import tensorflow as tf 03/07 11:28