2018年1月5日 星期五

Deep Learning 筆記


解決問題的方法不外乎三個Step


  1. Model: 把問題Model成一Nerual Network,以窮舉functions(構成一個function set)
    //i.e. 決定天賦
  2. Goodness of function: 決定哪個Function是好的, 哪些是壞的
  3. Pick the best function: Train出最好的Function

--------------------------
Step2中, 評量function好壞的方式有很多, 目地就是希望跟目標越像越好
假設目標是y', 而預測出來的答案是y, 而loss則代表預目標的差距
市面上有很多種評量loss的方式: Mean-Square-Error, Cross-Entropy, classification error

直接講結論:

  1. 分類問題(Training過程): use Cross-Entropy
  2. 回歸問題(Training過程): use MSE
  3. 驗證結果的指標(Training後的驗證): use classification error,  通嘗試validation / testing
    *回歸=regression

下面這篇文章講的淺顯易懂, 說明何時使用哪一種評量作為loss的依據
http://jackon.me/posts/why-use-cross-entropy-error-for-loss-function/


而搜尋出一組function parameter 來最小畫loss的搜尋法, 通常用Gradient Descent
*Pick an initial value for w -- Random, RBM per-train (2006) 但後來證明其實沒有差很多

步驟:

  • 初始畫一組weight, w; 得到一個Loss值, L
  • ∂ L / ∂ w, 負的 表示該方向使Loss變小
  • w' = w - Ƞ * ∂ L / ∂ w
    • Ƞ稱為learning rate: 表示一步要踏多大
於Neural Network更有效率的Gradient Descent演算法: Backpropagation:

--------------------
Use Keras to Build a Network

model = Sequential() //宣告一個model
model.add(Dense(input_dim=28*28,units=500,activation='relu'))
//Dense: full connected, 也可以用convolution
//input_dim: input dimension is 28*28
//units: 500個neural
//activation: 每個nerual的activation function的名字; ex: 'softplus', 'softsign', 'sigmoid', 'tanh', 'hard_sigmoid', 'linear', ...
//用relu的話 => input記得要normalize到0~1;  sigmoid的話就不用
model.add(Dense(units=500,activation='relu'))
model.add(Dense(units=10,activation='softmax'))

最終會定義一個如下圖的network

model.compile(loss='categorical crossentropy', optimizer='adam', metrics=['accurancy']) //configuration
//1) loss: for more loss function, please refer to https://keras.io/losses///2) optimizer: SGD, RMSprop, Adagrad, Adadelta, Adam, Adamax, Nadam
model.fit(x_train, y_train, batch_size=100, epochs=20) //pick the best function
//Both x_train, y_train are numpy array


https://www.tensorflow.org/get_started/mnist/beginners


==========================

CNN 與 RNN

CNN擅長處理image, RNN擅長處理sequence
  • CNN(Covolution Neural Network)
  • RNN(Recurrent Neural Network): 讓Neural Network有記憶


Why CNN for Image
原因是因為Image有以下三種property
  1. A neuron doesn't have to see the whole image to discover the pattern
    (i.e. can connect to small region with less parameter)
    比如影像中通常都只有一小部分是我們需要關注的對象, 用fully connected參數會太多
  2. The same pattern appear in different regions
    用同樣的參數(同一個neuron)就可以判斷不同位置的"鳥嘴", 不用依空間位置而訓練不同的"鳥嘴判斷器"
  3. Sub-sampling the pixels will not change the object
    縮小圖片, 圖片還是不變


Whole CNN

  • (Convolution => Max Pooling) repeat N times => Flattern => Fully Connected Feedforward network
    • Convolution解決前面的property 1, 2
    • Max Pooling解決前面的property 3



  • Convolution: 套filter; 其實就是套Filter下圖中6x6的image, 套3x3的filter, 此filter就是network"需要學"的參數,
    假設已經學出來的話長這樣:
    ..其實就是在做Property2
    數字大者表示原image中與此filter相似.

    畫成Network, 就如同不同neural share同一組weigth(下圖同色)
  • Max Pooling: 切成數個子集合, 然後選最大者, 形成一張更小的image; 其實就是sub-sampling
  • Flattern: 把Max pooling的結果, 拉直成vector, 往下塞給下一階段的Fully connected network


小節:
Deep learning train出來的Network其實很容易被呼嚨
ex: 熊貓塞給network => 辨識出熊貓 => 幫熊貓點一顆痣(加上雜訊) => 就辨識成長臂猿

(上圖用gradient ascend找出最可能讓此Network辨識出是0的圖X0, (1, 2, ..., 8 etc.) )
https://www.youtube.com/watch?v=M2IebCN9Ht4



==========================

 RNN

RNN就是有記憶的network, 通常用來做slot filling
ex: 比如要填 arrive <destination> at <date> ...  輸入 arrive Taipei at Novemeber 2nd 它依序就填入"Taipei"與"11/2"

Network架構如下圖



  • 第一次輸入x1, x2, 經過綠色的neural後, output會在a1 a2中.
  • 當下一次如果又輸入x1, x2, 上次的a1, a2也會加入這一次的運算, 因此同樣x1,x2確會得到不同的output
常見的RNN 通常拿來做語音辨識, 比較常用的叫做: Multiple-Layer LSTM




2016年4月18日 星期一

[C#] 資源釋放的觀念整理 - 筆記


C# 資源釋放的觀念整理 - 筆記
  • 變數分為數值型別參考型別
    • 前者配置於stack, 後者配置於heap
    • 前者當離開變數有效範圍就會直接被釋放
    • 後者僅被視為garbage, 等待GC回收, 不馬上回收視基於調整heap效率所設計的最佳策略
    • 後者發生時: 比如變數assign成NULL、重新指向其他物件、重新初始化
  • 以上資源皆由CLR配置並管理
  • CLR控制的資源稱為manage資源,其他稱unmanage 資源
    • manage資源會自動被GC回收 不須操心
    • unmanage資源必須定義在釋放函式(自行定義如何釋放)
  • 而C#的 Finalize()類似destructor,但是並非明確的在離開有效範圍就被呼叫,而是等待GC呼叫
    • 因此當programmer需要明確定義哪邊要釋放資源時,就會透過設計Dispose()函數來供programmer呼叫
    • 而Dispose發生在: 1. 被programmer明確呼叫的地方    2. Using {...}區塊結束時
      • 而Dispose函數釋放的資源分為兩個部分, 1是manage部分, 2是unmanage的部分
        • Programmer呼叫Dispose()函數視同宣告此變數已無效
        • Programmer呼叫Dispose(): 會呼叫protected型態的Dispose(true)釋放所有資源
        • 倘若是由Finalize()呼叫Dispose,是已離開變數有效範圍的位置,那就只需要回收unmanage資源,因此只需呼叫Dispose(false)的部分
      • 注意,
        倘若Dispose被成功執行了,為了避免稍後Finalize()又再度呼叫一次(註1)Dispose(),Dispose通常還會加上一行 GC.SuppressFinalize(this),告知GC不須在呼叫Dispose()
      • 註1: (http://readily-notes.blogspot.tw/2013/11/gcsuppressfinalize.html)
      • 具有解構子的物件其在被垃圾收集器回收處理時,會先被放入解構佇列之中,再交由另一個專門處理解構動作的執行緒去做解構的動作,當解構的動作完成,該物件又會被放回原來的佇列等待垃圾收集器的回收,因此其性能上的耗費會比沒有解構子的物件還來的多。由於IDisposable在實作上會習慣加入解構子做為保險措施,防止類別的使用者忘記叫用Dispose方法,造成資源的洩漏。故在釋放完資源後,我們應該隨即在後呼叫GC.SuppressFinalize,告知垃圾收集器該物件的解構動作跳過不處理。 
以上是資源釋放的概念,最後附上MSDN的範例code與供我悟懂的原文

// Design pattern for a base class.
public class Base: IDisposable
{
   //Implement IDisposable.
   public void Dispose() 
   {
     Dispose(true);
      GC.SuppressFinalize(this); 
   }

   protected virtual void Dispose(bool disposing) 
   {
      if (disposing) 
      {
         // Free other state (managed objects).
      }
      // Free your own state (unmanaged objects).
      // Set large fields to null.
   }

   // Use C# destructor syntax for finalization code.
   ~Base()
   {
      // Simply call Dispose(false).
      Dispose (false);
   }
}
C# - 資源釋放的觀念整理 < 這篇寫的真的不錯,此筆記由此文整理

2015年11月27日 星期五

[personal note] jshint error

1. 於迴圈中創立function:
https://jslinterrors.com/dont-make-functions-within-a-loop

  • 功能可能work,也可能會不如預期
  • 狀況: 比如迴圈中的function,參考到共用的變數
for (i = 0; i < elems.length; i++) {
elems[i].addEventListener("click", function () {alert(i);});
}
    • 若elems長度為5, 預期click第1個elems會跳出0(i start from 0),然而實際上每個按鈕跳出來都會是5
    • 由於迴圈跑完i會變成5,i這個共用的元件被每個function所參考,所以結果是5
  • Solution: 利用javascript中,function( argument )之argument皆為call by value的特性
    直接把想要的value傳進function,讓每一個function都保存當時的i在自己的argument中




a

2015年5月8日 星期五

[OpenSuSE] YaST2 Control Center is not running as root.\nYou can only see modules that do not require root privileges.

[狀況]
最近Server一直出問題,常常網路服務會斷線

ssh連進去用yast才發現大條了,跳出以下視窗,重開機也無效。

"「YaST2 控制中心」不是以 root 權限執行。\n您只會看到不需要 root 權限的模組。"


一度懷疑難道被駭了XD,

於是打了whoami

我的確是root..

然後上網爬了文爬了這篇,他的問題是記憶體不足,
http://www.linuxintro.org/wiki/YaST2_Control_Center_is_not_running_as_root

於是我也學他跑了
strace -ffs 100 yast 2>file
結果竟無法導出至file


只好用
strace -ffs 100 yast 2>&1|less
導進less來看,太多系統的call我看不懂,於是放棄

繼續GOOGLE到github上有放code
https://github.com/yast/yast-yast2/blob/master/library/desktop/src/clients/menu.rb

def OpenMenu # check if user is root (#246015)
output = Convert.to_map(
SCR.Execute(path(".target.bash_output"), "/usr/bin/id --user")
)
@root = Ops.get_string(output, "stdout", "") == "0\n"
...
# show popup when running as non-root
if !@root
Popup.Notify(
_(
"YaST2 Control Center is not running as root.\nYou can only see modules that do not require root privileges."
)
)
end
nil
end
執行/usr/bin/id --user確認身分是否為ID=0,然後判斷完丟給root變數(True/False)

發現又是個重導(redirection)

想到是否是"導出"的問題,

於是先df看了硬碟使用狀況

尼馬原來是硬碟滿了

把硬碟清出空間以後就沒事了,害我數度以為要重灌了= =

給網路上諸位苦主參考,這個警示訊息真得會嚇死人阿..,以為被駭




----

提供個指令,能查找硬碟內某資料夾最大的幾個檔案
du -sh ./*|sort -rn|head

2014年12月2日 星期二

[openSuSE] Supermicro 重開機後無法進入OS/ Linux halts after reboot/shutdown -r

學校買了一台 Supermicro 6027TR-HTRF 4nodes的server

灌下去才發現灌好openSuSE 12.2以後, 只要重開機(reboots), 下次進OS就會卡在登入畫面


爬文發現不只openSuSE, Ubuntu似乎也有這個問題, 共通點是Supermicro的主機板

估計是bios的問題, 不確定


我的症狀:

當使用下列指令的 或用功能表restart時, 電腦可以關機, 但是重新開機後會停在OS的載入畫面
shutdown -r
reboot


Solution 1: [Success]

URL:
Issue:
reboot does a shutdown instead of rebooting
這比較不像我的症狀,但是真的可行

方法: 停用MEI driver (<-這個driver我不知道幹嘛的, 如果以後真的因為他而碰到其他問題, 我再向您們求助, 暫時沒有發現問題)

1. vim /etc/modprobe.d/blacklist.conf
#不一定叫做blacklist.conf, 像opensuse裡面叫做 50-blacklist.conf, 前面可能有前綴

2. 在檔案結尾加上以下兩行

# Make system reboot
blacklist mei

不過我的電腦重開機時, 跳登入畫面前會進入黑屏, KVM會自動跳到下一台電腦, 這個症狀別台電腦不會, 也許是負作用, 不過暫時沒事..


Solution 2: [Fail]

Issue:
Linux hang/freeze during reboots and restarts
URL:
其實我的症狀比較像這篇寫的

所以我照著去改, 讓grub開機的時候加上參數reboot=xx, 不過沒有用, 如果你的客戶照著這篇網站改過, 卻沒有用, 可以試試看Solution1, 兩種都有可能

欲修改grub開OS餵的參數, 要編輯這個文件 /etc/default/grub, 當中有一條GRUB_CMDLINE_LINUX=""

把它改成
GRUB_CMDLINE_LINUX="reboot=bios"
GRUB_CMDLINE_LINUX="reboot=acpi"

不行的話就照上面URL裡面提到的那10個參數一個一個試

2014年11月24日 星期一

OpenSuSE 12.2 中使用pptpd佈建VPN server,並設置NAT,防火牆設置,log設置

1. 首先 YaST中安裝package pptpd

2.pptpd vpn 相關的設定

vim /etc/pptpd.conf
添加以下設定
(在此我的server有兩張網卡,
本來就有區網 網段為192.168.0.x, 為了避開, 所以改成192.168.16.x,
一般分開兩網段比較方便管理,也有人用10.0.0.x)
# 開啟 debug (會寫到 /var/log/message) 測試完記得關閉
debug
# 連線數
connections 20
ppp /usr/sbin/pppd
option  /etc/ppp/pptpd-options
localip 192.168.16.1
remoteip    192.168.16.201-220
debug 測試的時候可以開(把#號拿掉)
local-ip是你主機的IP, 可故意分在不同網段
connections 可不寫

vim /etc/ppp/options
asyncmap 0
auth
crtscts
lock
hide-password
modem
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
noipx 


vim  /etc/ppp/pptpd-options
name MyVPN

# 與連線加密相關的設定
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
lock
nobsdcomp

# 設定要分派的 DNS Server
ms-dns 168.95.1.1
ms-dns 8.8.8.8
# 指定 logfile
logfile /var/log/pptpd.log
# 設定閒置幾秒後自動斷線
idle 7200
最後編輯帳號密碼
vim /etc/ppp/chap-secrets
"username"      MyVPN   "password"    *



開啟 Forward,主要是為了能夠進行 NAT
vim /etc/sysctl.conf
 net.ipv4.ip_forward = 1

service network reload

3.啟動pptpd

最後啟動 pptpd 並且設定 pptpd 開機自動啟用
chkconfig --level 345 pptpd on
service pptpd start

檢查 pptpd是否有 run 起來:
service --status-all | grep pptp

note: 重啟pptpd的方法
service pptpd restart


3. 防火牆設置

opensuse 12.2內建SuSE2firewall ,我不會改iptables..
所以直接對internal的route設通通可以

vim /etc/sysconfig/SuSEfirewall2
記得備份!

裡面加入以下設定
#對internal 開放
FW_ALLOW_CLASS_ROUTING="int"

FW_ROUTE="yes"
FW_MASQUERADE="yes"

FW_DEV_INT="ppp+"
#如果對內本來還有別張網卡, ex eth1
#那就改成 "eth1 ppp+" 以空白隔開
 完成 


Appendix. 其他linux之防火牆設置

一般linux的話, 直接照著網路上常有的nat設定 for vpn即可(port 1723 與 gre協定)

先來做個備份吧

iptables-save > ./iptables_backup
note: 還原的方法
iptables-restore < ./iptables_backup

開始設定iptable
#開啟 forward
echo "1" > /proc/sys/net/ipv4/ip_forward
#pptp
iptables -t nat -A POSTROUTING -s 192.168.16.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p gre -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp+ -j ACCEPT
 
Appendix.2 自訂log要記錄的資料
 vim /etc/ppp/ip-down.local
 以下為範例:
 (改完後記得還要chmod 把ip-down.local改成可執行 ex: chmod 777 /etc/ppp/ip-down.local)

#!/bin/bash

BASENAME=${0##*/}
INTERFACE=$1
DEVICE=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5
IPPARAM=$6


echo "================================================" >> /var/log/pptpd.log
echo "log of clientIP: $6    username: $PEERNAME" >> /var/log/pptpd.log
echo "------------------------------------------------" >> /var/log/pptpd.log
echo "/etc/ppp/ip-down.local starts.." >> /var/log/pptpd.log
echo "time: `date -d today +%F,%T`" >> /var/log/pptpd.log
echo "interface: $1    device: $2" >> /var/log/pptpd.log
echo "assignIP: $5" >> /var/log/pptpd.log
echo "================================================" >> /var/log/pptpd.log
 
 
非常有幫助的資料:
在 Linux 安裝 VPN Server 教學 (pptpd on CentOS)  
PPTP协议的VPN服务器的搭建,包括pptpd的自动启动...  
 

2014年7月13日 星期日

Parallel HARQ processes 平行的HARQ程序

概念是從這篇介紹UMTS中HARQ程序的文章中看到的
http://letstalkumts.blogspot.tw/2011/10/harq-procedure.html

此篇前面敘述的前提應是UMTS中downlink部分,最後下面分點敘述才提到uplink部分



Automatic Repeat Request(ARQ)
是基本的重傳機制,reciver一旦發現收到的資料有誤,就全部捨棄,然後向sender要求重傳

Hybrid ARQ(HARQ)
則是檢查錯誤後,若有錯 就把資料buffer起來,並向sender要求重傳,然後根據buffer的data與重傳的data合併成無誤的結果 ( channel decoding and error detection)

Parallel HARQ processes
是用來避免重傳對throughput的影響。
當一個HARQ程序正在等待ACK時,第二個HARQ程序就可以趁此機會 在接下來的TTI傳送資料
這些parallel processes就稱為Stop and Wait processes

3GPP中,允許最大8個parallel HARQ processes被config給同一個UE (DL)



原文應在TS 36.213 section 7,其中註名HARQ process的最大數量

2014年3月5日 星期三

[Linear Programming] The Simplex Method in tableau / /線性規劃的Tableau方法之教學 (youtube)


影片有步驟,一步一步代數字很清楚,

原本的object funciton   MAX z =  x1 + 2 x2

subject to
x1 <= 2  ... (L1)
x2 <= 2  ... (L2)
x1+x2 <= 3  ... (L3)

加入slack variable以後變成
x1+       x3               = 2
      x2 +     + x4       = 2
x1+x2                +x5 = 3


然後先找一個initial的解(不一定最佳)

( basis = {x3,x4,x5} ,  non-basis = {x1,x2} )
x1 = x2 = 0,   x3 = 2, x4 = 2, x5 = 3 明顯式子會滿足限制式L1~L3

然後找一個能讓z增加的column, 影片中是先選x2, 作為working column

於是乎三條限制式都限制x2, 它找其中那個ratio最大的那一步, 就是在找哪一條式子限制x2最多

因此2:49那邊L2限制x2最多, 因此把代表該行的x4踢掉, x2近來( x2長大變成x2=2, x2進入basis),

此時basis = {x3, x2, x5}     non-basis={x1, x4}

接著把其它L1,L3的兩行內的x2消掉(為的讓L1,與L3都跟x2無關, 使x2固定在2)



照類似的步驟 5:08, L3對x1最嚴格, 因此把L3代表的x5踢離basis,

basis = {x1, x2, x3},   non-basis={x4,x5}

之後發現L4的係數皆負,

0 0 0 -1 -1

如此無法藉由增加non-basis而讓z變好(增加x4,x5的話, 乘上-號會使z變小),所以得到了最佳解(最大值)



影片如下↓


2013年12月17日 星期二

Definition of Proportional / Envy-free division

N人均分一塊蛋糕,蛋糕上面的東西不均勻,可能某部份奶油多,某部份水果多,總之就是每個人偏好的部分可能不一樣;意即大家對於同一蛋糕的每一部分有不同的偏好程度。


Proportional division ( simple fair division)
對於每一個人來說,自己至少拿到1/N的蛋糕,而此1/N是以自己的價值觀來看(by their own valuation)
在此也暗示了說,可能除了自己有另外兩個人A, B,然後A拿到的那一份蛋糕在自己眼裡是少於1/N的,B拿到的那一份則多餘1/N。因此自己可能會想要拿自己的蛋糕跟B換,這說明此分法並非envy-free

Envy-Free
一個分法被稱為是Envy-free,如果每個拿蛋糕的人都覺得其他人拿到的蛋糕,都沒有自己拿到的多(i.e. 以自己的價值觀來看,覺得自己分最多所以不會想跟任何一個人交換)
因此Envy-Free的定義比Proportional更嚴格。
A division is envy-free if each recipient believes that according to his measure no other recipient has received more than he has. This requirement is stronger than proportional division.


http://en.wikipedia.org/wiki/Proportional_(fair_division)
http://en.wikipedia.org/wiki/Envy-free

2013年11月5日 星期二

什麼是HARQ; What is HARQ(Hybrid automatic repeat request)

全名是Hybrid automatic repeat request,混種的ARQ

其實就是FEC + ARQ


傳統的ARQ只在資料末添加一點redundant bits,作為"偵"錯碼(only for error-detection)
比如 cyclic redundancy check (CRC);  同位元檢查(parity bit)

然後FEC指的是添加在資料,並且可以"糾"錯的那些FEC code
比如 Reed-Solomon code (RS code); Hamming(7,4) code


HARQ就是data連同FEC code, parity bit 一起傳,如果parity bit告知內有錯誤,即用FEC code糾正錯誤,糾正失敗的話才採用ARQ的機制,因此ARQ在HARQ中可算是一備案


明顯的,用FEC code需要多傳比較多的bit,因此有代價

在channel quality很差的時候,HARQ比ARQ好;
在channel quality不錯的時候,原始的ARQ比較適合。就依現況做選擇


資料來源:
http://en.wikipedia.org/wiki/Hybrid_automatic_repeat_request



2013年10月9日 星期三

顫抖手精煉均衡 (trembling hand perfect equilibrium)


Definitioin

“顫抖手精煉均衡”概念是澤爾騰提出的對納什均衡的一個改進。顫抖手精煉均衡的基本思想是:在任何一個博弈中,每個局中人都有一定的犯錯誤的可能性(類似一個人用手抓東西時,手一顫抖,他就抓不住他想抓的東西)。一個策略對是一個顫抖手精煉均衡時,它必須具有如下性質:各局中人i要採用的策略,不僅在其他局中人不犯錯誤時是最優的,而且在其他局中人偶爾犯錯誤(概率很小,但大於0)時還是最優的。可以看出,顫抖手精煉均衡是一種較穩定的均衡。

all text is from MBALib:
http://wiki.mbalib.com/zh-tw/%E9%A2%A4%E6%8A%96%E6%89%8B%E7%B2%BE%E7%82%BC%E5%9D%87%E8%A1%A1




Example

The game represented in the following normal form matrix has two pure strategy Nash equilibria, namely <Up, Left> and <Down, Right>. However, only <U,L> is trembling-hand perfect.
LeftRight
Up1, 12, 0
Down0, 22, 2
Trembling hand perfect equilibrium
Assume player 1 is playing a mixed strategy (1-\epsilon, \epsilon), for  0<\epsilon <1. Player 2's expected payoff from playing L is:
1(1-\epsilon) + 2\epsilon = 1+\epsilon.\
Player 2's expected payoff from playing the strategy R is:
0(1-\epsilon) + 2\epsilon = 2\epsilon.\
For small values of ε, player 2 maximizes his expected payoff by placing a minimal weight on R and maximal weight on L. By symmetry, player 1 should place a minimal weight on D if player 2 is playing the mixed strategy (1-\epsilon, \epsilon). Hence <U,L> is trembling-hand perfect.
However, similar analysis fails for the strategy profile <D,R>.
Assume player 2 is playing a mixed strategy (\epsilon, 1-\epsilon). Player 1's expected payoff from playing U is:
1\epsilon + 2(1-\epsilon) = 2-\epsilon.\
Player 1's expected payoff from playing D is:
0(\epsilon) + 2(1-\epsilon) = 2-2\epsilon.\
For all positive values of ε, player 1 maximizes his expected payoff by placing a minimal weight on D and maximal weight on U. Hence <D, R> is not trembling-hand perfect because player 2 (and, by symmetry, player 1) maximizes his expected payoff by deviating most often to L if there is a small chance of error in the behavior of player 1.

all text is from Wikipedia
http://en.wikipedia.org/wiki/Trembling_hand_perfect_equilibrium

2013年8月13日 星期二

FFR(Fractional Frequency Reuse)

FFR(Fractional Frequency Reuse)
http://www.conniq.com/WiMAX/fractional-frequency-reuse.htm




Picture is copyed from the above URL
It can clearly describes what FFR is.
All rights belongs to the original author of the above URL.


.

2013年7月28日 星期日

HetNet / HSPA+ Multflow / SON(Self-Organizing Network) / MTC(M2M) / eICIC / UPCON


HetNet

 [3GPP] What is HetNet?
隨著PS domain service的使用人數漸增,如何可以讓這些使用無線上網服務的人有更佳的使用者經驗也就越來越重要,近期以來,主要的技術開發焦點可以分為兩種,一個是讓無線資料傳輸速度更快,一個是增加行動無線網路的容量.針對後者,其中很重要的一個技術是新的行動無線網路架構,即Heterogeneous Network (又稱為HetNet).
http://lucieninsight.blogspot.tw/2011/09/3gpp-what-is-hetnet.html
[摘自原文,詳見連結↑]

SON (Self-Organizing Network)

可以把它想成是網路自我管理的技術,當網路置入一個新的Pico cell時,它會主動和其它臨近的cell進行溝通自動將網路的資源管理再擬出一個最佳化結果出來.
[同樣摘自上連結↑]

詳細中文介紹可參考此連結
http://xdxdd.blogspot.tw/2012/11/lteself-organizing-networkson.html

HSPA+ Multiflow

諾基亞西門子( Nokia Siemens )與高通( Qualcomm )將在下星期登場的世界行動通訊大會(MWC)上,聯手推出新的 HSPA+ Multiflow 技術。這項強化的寬頻技術將可為現有的3G HSPA+ 數據通訊速度增加一倍,原理便是讓行動裝置能夠在與最近的基地台連線之外,還可同時與次近的基地台連線通訊。目前的行動通訊技術僅能讓行動裝置同時與單一基地台連線通訊。
http://goooqle-money.blogspot.tw/2012/02/ltehspa-multiflow.html
[完全摘自原文↑]

LTE Multiflow

 ??


MTC / M2M

機器對機器(Machine-to-machine, M2M)通訊實現了機器與機器之間的網際網路,它指的是在不透過或在有限的人機互動情況下,不同裝置之間能相互溝通進行資料交換。在第三代合作夥伴計畫(3GPP)標準中,亦稱此為機器類型通訊(Machine Type Communication, MTC)。當前M2M技術已廣泛使用在歐、美、日、韓等國家,主要應用在安全監測、機械業務、公共交通系統與工業自動化等領域。
http://www.2cm.com.tw/technologyshow_content.asp?sn=1011230014
[完全摘自原文首段↑]

eICIC

Enhanced Inter-Cell Interference Coordination (eICIC)

UPCON

※ UPCON is a Work Item on 3GPP
        - 570029 (UPCON) "User Plane Congestion management" [Rel-12]
※ UPCON (User Plane Congestion Management)

完全摘自 3GPP TSG SA WG1 #57 會議出國報告 by陳瓊璋,詳可見原文
http://std-share.itri.org.tw/Content/Files/Report/Files/3GPP_SA1_57%E6%9C%83%E8%AD%B0%E5%A0%B1%E5%91%8A.pdf

1.
SA1 新成立的R12 SI UPCON (User Plane Congestion Management)是本次會議討論的重點之一,目的在於探討因行動上網訊務量暴增造成的基地台壅塞,如何加以管制以改善使用者經驗(QoE, quality of experience)的相關需求與應用場景
2.
UPCON的基礎應用情境是:
當無線網路(RAN, Radio Access Network)端偵測到congestion時,核心網路(CN, Core Network)即啟動user plan congestion control,透過一些管理與管制機制,以改善上網訊務壅塞狀況並提升使用者QoE。
3.
本次會議通過UPCON的產出文件 TR 22.805 v0.2版框架(Skeleton),並同意通過有關RAN 壅塞控制(congestion control)將依下列三種分類來處理:
    用戶的付費等級 (the subscription of the user)
    應用的類型 (the type of application)
    訊務內容的類型 (the type of content)
4.
本次會議主要是討論所提出的UPCON可能應用情境(use cases),主要分為幾種討論議題進行:
    Basic Concepts
    User/subscriber-based Use Cases
    Application-based Use Case
    Non-real time Use Cases
    Other use cases
... 詳細可見原文