Basic linear algebra : Linear mapping

หัวข้อ

Linearity [1]

"linear" มาจากภาษาละติน "linearis" หมายถึง เหมือนหรือสัมพันธ์กับเส้นตรง ในทางคณิตศาสตร์มอง linearity คือรูปแบบของความสัมพันธ์ระหว่างตัวแปร เมื่อนำมา plot graph แล้วจะมองได้ว่าเป็นเส้นตรง ถ้าพิจารณาสัดส่วนระหว่างตัวแปรก็จะมีแนวโน้มเข้าหาค่าคงที่ค่าหนึ่ง  ตัวอย่างข้อมูลในตารางที่ 1 คือส่วนหนึ่งของข้อมูลของความสูง (ซม.) กับ น้ำหนัก (กก.) ของเด็กกลุ่มหนึ่ง กราฟแสดงความสัมพันธ์ระหว่างความสูงและน้ำหนักแสดงในรูปที่ 1 โดยใช้ข้อมูลจาก 30 คน

ตารางที่ 1 : ตัวอย่างข้อมูลแสดงความสัมพันธ์ระหว่างน้ำหนักกับความสูง

น้ำหนัก (กก.) ความสูง (ซม.)
50.0141.9
51.0148.7
52.1146.6
53.1153.9
54.1148.7
55.2151.9
56.2150.1
57.2150.8
58.3148.9
59.3150.9
... ...

รูปที่ 1 กราฟแสดงความสัมพันธ์ระหว่างความสูงกับน้ำหนัก


ในรูปที่ 1 จุดสีน้ำเงินแทนข้อมูลที่มาจากตาราง ข้อมูลที่เก็บมาจากสภาพในธรรมชาติจริงมักไม่เรียบเหมือนกับข้อมูลที่เกิดขึ้นตามทฤษฎี แต่จะมีแนวโน้มเป็นไปตามทฤษฎี จึงสร้างเส้นตรงสีแดงเพื่อช่วยทำให้เห็นว่าความสัมพันธ์ของข้อมูลนั้นอยู่ในรูปแบบของเส้นตรง หรือมี linearity  

ภาพของแนวโน้มนี้จะชัดเจนมากขึ้นเมื่อมีจำนวนข้อมูลมากขึ้น ดูได้จากรูปที่ 2 ความชัดเจนของ linearity มีมากขึ้นเมื่อใช้ข้อมูลจาก 1000 คน

 รูปที่ 2 ลักษณะความสัมพันธ์แสดงให้เป็นรูปแบบเส้นตรงชัดขึ้นเมื่อจำนวนตัวอย่างเพิ่มขึ้น


[Top]


Linear equation [2]

พิจารณาตัวอย่างการทำ Green Smoothie 1 แก้ว มีส่วนผสมดังนี้ 
  • ผักโขม 2 ถ้วยตวง
  • น้ำเปล่า 2 ถ้วยตวง
  • เนื้อมะม่วง 1 ถ้วยตวง
  • เนื้อสัปรด 1 ถ้วยตวง
  • กล้วย 1 ผล
เราอาจเขียนสูตรนี้ใหม่ในรูปแบบของสมการเชิงเส้น (linear equation) ได้ดังนี้
(1.0)smoothie=(2×spinach)+(2×water)+mango+pineapple+banana
หรือ
(1.1)y=2x1+2x2+x3+x4+x5

เมื่อ y แทนจำนวนแก้วของ Green smoothie
x1 แทน spinach, 
x2 แทน water, 
 x3 แทน mango ,
x4 แทน pineapple และ 
x5 แทน banana 

สมการ (1.1) อยู่ในรูปแบบของ linear form หรือ linear equation ช่วยให้เราสามารถจัดการกับปริมาณวัตถุดิบที่จะใช้หรือปริมาณของ Green Smoothie ที่จะได้เมื่อทราบจำนวนของวัตถุดิบ เช่น ถ้าต้องการ Green Smoothie จำนวน 50 แก้ว การคำนวณหาปริมาณวัตถุดิบที่ต้องการทั้งหมดคือการด้วย 50 เข้าไปใน (1.1) ก็จะได้จำนวนวัตถุดิบแต่ละชนิดที่ต้องการ

ทำให้เราสรุปรูปแบบทั่วไปของ linear equation ได้ดังนี้ 

(1.3)y=a1x1+a2x2+a3x3+...+anxn

เรียก x1,x2,x3,...,xn ว่า unknown variables , a1,a2,a3,...,an ว่า parameters หรือ coefficients

[Top]

System of linear equations

เป็นการขยายความต่อจากตัวอย่างการผลิต Green Smoothie สมมุติมีโรงงาน A ผลิตและจำหน่ายสินค้า n ชนิด สินค้าแต่ละชนิดใช้วัตถุดิบ m ชนิดในปริมาณที่ต่างกัน
ถ้าให้  P1,P2,P3,...,Pn แทนจำนวนหน่วยของสินค้าชนิดที่ 1 ,2, 3,...,n ที่จะผลิตได้
ให้  M1,M2,M3,...,Mm แทนจำนวนของวัตถุดิบแต่ละชนิดที่ใช้ต้องใช้ในการผลิตสินค้า 
ให้ an,m แทนจำนวนหน่วยของวัตถุดิบที่ m ใช้ในการผลิตสินค้า n

จากข้อมูลนี้นำมาเขียน linear equation ของการผลิตสินค้าชนิดต่างๆ ดังนี้
P1=a1,1M1+a1,2M2+a1,3M3+...+a1,mMmP2=a2,1M1+a2,2M2+a2,3M3+...+a2,mMmP3=a3,1M1+a3,2M2+a3,3M3+...+a3,mMmPn=an,1M1+an,2M2+an,3M3+...+an,mMm

collection ของ linear equations ในระบบหนึ่งลักษณะนี้เราเรียกว่า System of linear equations

สังเกตุจะพบว่า a1,1,a2,1,a3,1,...,an,1 จะคูณด้วย M1  และ a1,2,a2,2,a3,2,...,an,2 จะคูณด้วย M2 แบบนี้ไปเรื่อยๆ จนถึง a1,m,a2,m,a3,m,...,an,m จะคูณด้วย Mm    นั่นคือ system of linear equations อาจถูกเขียนในแบบของ vector - scalar multiplicationได้ดังนี้
(2.1)[P1P2P3Pn]=M1[a1,1a2,1a3,1an,1]+M2[a1,2a2,2a3,2an,2]+M3[a1,3a2,3a3,3an,3]++Mm[a1,ma2,ma3,man,m]
หรือ แปลงให้อยู่ในรูปแบบของ matrix dot operation ( มองว่า vector เป็น column matrix)
[P1P2P3Pn]=[a1,1a1,2a1,3a1,ma2,1a2,2a2,3a2,ma3,1a3,2a3,3a3,man,1an,2an,3an,m][M1M2M3Mm](2.2)P=AM

สมการ (2.2) อาจถูกเรียกว่า ฟังก์ชั่นเป้าหมาย (objective function)
 
[Top]


Linear function [3,4]

สมมุติว่าทราบความสัมพันธ์บางอย่างของ unknown variable 3 ตัว ในรูปแบบ  8a4b+10c=20 นั่นคือ
 4b=8a+10c20b=2a+52c5

หมายความว่าหากเราทราบค่าของ a  และ c แล้ว ก็จะสามารถหาค่าของ b ได้ หรือหากทราบค่าของสองตัวแปรใดๆ จะหาค่าของตัวแปรที่เหลือได้ ถ้ามองในมุม function  a,c คือ input  และ b คือ output ความสัมพันธ์ในรูปแบบของ function  เขียนได้ดังนี้
f(a,c)=2a+52c5

ทำนองเดียวกัน linear equation (1.3) ก็ถูกมองในรูปแบบของ function ได้โดยทุก unknown variables xn คือ input ของ function สมการ (1.3) เขียนใหม่ได้เป็น

(3.1)f(x1,x2,x3,...,xn)=a1x1+a2x2+a3x3+...+anxn

เรียกว่า (3.1) ว่า linear function เมื่อนำแนวคิดเรื่อง vector  dot product [5] มาใช้กับสมการ (3.1) จะเขียนใหม่ได้เป็น

f(x1,x2,x3,...,xn)=[a1a2a3an][x1x2x3xn](3.2)f(x)=ax

เราทราบว่า f(x) และ axn จึงสรุปได้ว่า linear function คือ function ที่ map จาก set ของ n-vectors ไปสู่ set ของ real number f:n

[Top]

Linear mapping [6]

คำว่า "mapping" คือ กฎที่ใช้ระบุการจับคู่สมาชิกใดๆของ set หนึ่งไปยังอีก set หนึ่งในลักษณะแบบ many to one ซึ่งเป็นความหมายเดียวกันกับ "function" [7] เพียงแต่เมื่อกล่าวในบริบทของ linear mapping จะใช้กับการโยงระหว่าง vector space แทน set 

ถ้า T คือ function หรือ mapping ระหว่าง vector space V ไปยัง vector space W เขียนแทนด้วย T:VW สำหรับ u,vV แล้ว T ต้องสอดคล้องกับคุณสมบัติสองข้อคือ
  1. T(v+u)=T(v)+T(u)
  2. T(av)=aT(v)

ถ้ามี v=[v1v2vn] จะสามารถเขียน v ในรูปแบบของ span คือ v1e1+v2e2+...+vnen เมื่อ e1,e2,e3,...,en คือ basis vectors ของแต่ละแกนบน  plane เช่น [37]=3[10]+7[01]
นั่นคือ
T(v)=T(v1e1+v2e2+...+vnen)=T(v1e1)+T(v2e2)+...+T(vnen)=v1T(e1)+v2T(e2)+...+vnT(en)(4.1)T(v)=v1T(e1)+v2T(e2)+...+vnT(en)
พิจารณาสมการ (4.1) จะเห็นว่าสามารถมองในรูปแบบของ matrix-vector multiplication ได้ คือ
T(v)=[T(e1)T(e2)...T(en)][v1v2vn](4.2)T(v)=Av
เรียก A ใน (4.2) ว่า Transform Matrix

ตัวอย่าง ต้องการหา vector ที่ตั้งฉากกับ u=[23] ในทิศทางตามเข็มนาฬิกา
จากกำหนดให้ u2 ทำให้ทราบว่า [10],[01] คือ basis ของ dimension ที่ 1 และ 2 ตามลำดับ
พิจารณา [10] vector ที่ตั้งฉากกันในทิศตามเข็มนาฬิกาคือ [01]
พิจารณา [01] vector ที่ตั้งฉากกันในทิศตามเข็มนาฬิกาคือ [10]
นำไปแทนค่าตาม (4.1) target vector ที่ได้ก็คือ 2×[01]+3×[10]=[32]

ตัวอย่าง ถ้ามี u=[36] และ A=[0110] จะสามารถสร้าง v ที่ได้จาก การทำ linear mapping ดังนี้
 
v=Auv=[0110][36]v=[63]
ในกรณีนี้ T:uv คือ T(u)=Au นำ u,v ไปวาดลงบน plate จะเห็นว่าตั้งฉากกัน  นั่นคือ T ในตัวอย่างนี้คือการ map u ไปหา orthogonal vector 

รูปที่ 3


ตัวอย่าง จากตัวอย่างก่อนหน้า จงพิสูจน์ว่า T:uv สอดคล้อง
กับคุณสมบัติของ linear mapping หรือไม่

พิสูจน์ว่า A(u+v)=Au+Av สมมุติให้ v=[23]

A(u+v)=[0110]([36]+[23])(4.3)=[95]Au+Av=[0110][36]+[0110][23](4.4)=[95]
(4.3) = (4.4) สอดคล้องกับคุณสมบัติข้อแรก
พิสูจน์ว่า A(a×u)=a×(Au) สมมุติให้ a=3
A(3×u)=[0110][918](4.5)=[189]3×(Au)=3×([0110][36])(4.6)=[189]
(4.5) = (4.6) สอดคล้องกับคุณสมบัติข้อแรก

ตัวอย่าง Transform matrix linear mappings

การทำ linear mapping ด้วย matrix transform จะพบได้บ่อยในงานด้าน image processing , computer vision และ neural network ตัวอย่าง transform matrix แสดงในตารางที่ 2 [8] เช่น

ตารางที่ 2 ตัวอย่าง transform matrix สำหรับ linear mapping ในงาน computer graphic
TransformationMatrixNote
Scaling[sx000sy0001]
Rotation [cos(θ)sin(θ)sin(θ)cos(θ)]
Shearing [1sh0sv10001]
 
ตัวอย่างการทำ linear mapping ด้วย rotation matrix ด้วยมุม 45ทำให้เกิดการเปลี่ยนแปลงขึ้นดังรูปที่ 4 และ 5  input vectors แทนด้วยสีแดง output vectors แทนด้วยสีฟ้า จะสังเกตุเส้นประซึ่งแสดงให้เห็นการเปลี่ยนตำแหน่งของของรูปสี่เหลี่ยมมีการหมุนหรือการย้ายตำแหน่ง โดยที่สัดส่วนไม่ได้มีการเปลี่ยน
รูปที่ 4 ผลของการใช้ rotation matrix 


รูปที่ 5 ผลของการใช้ translation matrix

การใช้ linear mapping ในการเปลี่ยน color space ของภาพ เพื่อช่วยในการวิเคราะห์ภาพ จาก Red Green Blue (RGB) color space [11] ไปยัง Luminance, Chrominance (YCbCr) [12] โดยใช้สมการ

ARGB=YCbCr(0.2990.5870.11400.1690.3310.51280.50.4190.081128)(RGB)=(YCbCr)

รูปที่ 6 ภาพที่แสดงด้วย YCrCb (บน) และ RGB (ล่าง) แยกตาม channel 


จากรูปที่ 6 ภาพที่ใช้ RGB colorspace (3 ภาพล่าง) เมื่อแยกออกมาแสดงเป็นแต่ละ channel  (Red, Gree, Blue) แล้ว จะเห็นว่ามีความแตกต่างน้อย ในขณะที่ภาพที่ใช้ YCbCr colorspace (3 ภาพบน) จะแสดงความแตกต่างกันในแต่ละ channel (Y,Cr,Cb) ได้ชัดเจนกว่า

[Top]

Translation

Translation เป็น linear mapping แบบหนึ่ง ที่อยู่ในรูปแบบ T:RnRn โดยที่ (5.0)T(x)=x+b เมื่อ b เป็น vector ที่ไม่เปลี่ยนแปลง (fixed vector)  ตัวอย่างแสดงในรูปที่ 7 set ของ vector เดิมแทนด้วยสีแดง set ของ vector ที่ถูก translate แทนด้วยสีน้ำเงิน

รูปที่ 7 แสดงการ translate ด้วย b=[23]

[Top]

Affine mapping [9,10]

Affine mapping หรือ affine function คือ function ที่มีกิจกรรมสองอย่างคือ linear mapping และ translation รูปแบบทั่วไปคือ
 (6.0)A(x)=Mx+b
 
เมื่อ M คือ linear transform matrix (linear mapping matrix) และ b คือ translation vector


โดยนิยามแล้ว ทุก linear function ถือว่าเป็น affine function แต่ไม่ทุก affine  function จะเป็น linear function พิสูจน์ได้จาก ถ้ากำหนดให้  A(u)=Mu+bA(v)=Mv+b

แล้วจะได้
A(u+v)=M(u+v)+b

ในขณะที่
A(u)+A(v)=Mu+b+Mv+b=M(uv)+2b

จะเห็นได้ว่า A(u+v)A(u)+A(v) ในกรณีของ affine function


ตัวอย่างการสร้าง affine function ที่ประกอบด้วย linear function คือการทำ shearing  ด้วย [10.401] (ดูตารางที่ 2) และ translation ด้วย [33] ของลุ่ม vector [13],[33],[31],[11]

รูปที่ 8 linear mapping ด้วย shearing (ซ้าย) affine mapping ด้วย shearging และ  translation (ขวา)

A([13])=[10.401][13]+[33]A([13])=[5.26]
ด้วยวิธีการของ augmatation เราสามารถเขียนสมการนี้ใหม่ได้ด้วย
A([13])=[10.43013][131]
vector ที่เหลือก็สามารถจัดการด้วยวิธีการเดียวกันได้ ผลที่ได้ดูจากรูปที่ 8

Affine function ใน perceptron 
perceptron เป็นพื้นฐานของ neural network ใน perceptron มี 2  functions ทำงานร่วมกัน คือ accumulation function และ activation function  [13] ในส่วน  accumulation function คือ
 
g(x)=i=1nwixi+b

ถ้าให้ x ,b เป็น vector และ w เป็น matrix เราก็สามารถเขียนในรูปแบบของ operation ระหว่าง matrix กับ vector ได้
g(x)=Wx+b

จะเห็นว่า g(x) ก็คือ affine function นั่นคือภายใน neural network (ไม่นับ learning algorithm ) คือ affine function กับ activation function 


[Top]

Projection transformation

Projection เหมือนกับการเกิดเงาของคนบนกำแพง หากเทียบคนกับ vector แล้วกำแพงเทียบกับ axis หรือ plane เงาของคนบนกำแพงหรือพื้นก็คือ projection vector ของคน

รูปที่ 9 เงาของคนบนกำแพงเทียบได้กับ projection vector

ใน 2 D space , ถ้า projection ของ x=[xy] บน X - axis คือ [xy] แล้ว จะได้
x=x+0yy=0+0y หรืออาจเขียนให้อยู่ในรูปของ linear transformation คือ
[xy]=[1000][xy]
ทำนองเดียวกัน projection vector บน Y-axis หาได้จาก
[xy]=[0001][xy]
สรุปคือ transform matrix สำหรับ x=[xy] บน X-axis คือ [1000] และบน Y-axis คือ [0001]
รูปที่ 10 projection บน x-axis หรือ y-axis



ใน 3 D space หรือมากกว่า หลักการยังคงเหมือนเดิมแต่ projection vector จะเป็น vector บน plane ไม่ใช่บน axis 

รูปที่ 11 projection vector ที่มี dimension มากกว่า 2 จะอยู่บน plane 

ถ้ามี [xyz] projection ที่เกิดขึ้นจะอยู่บน plane ได้ทั้ง plane คือ x-y, x-z, หรือ y-z 
บน plane x-y x=x+0y+0zy=0x+y+0zz=0x+0y+0z[xyz]=[100010000][xyz]
บน plane x-z x=x+0y+0zy=0x+0y+0zz=0x+0y+z[xyz]=[100000001][xyz]
บน plane y-z x=0x+0y+0zy=0x+y+0zz=0x+0y+z[xyz]=[000010001][xyz]
กลับไปเทียบกับเรื่องของเงา เงาของคนเป็นภาพที่เกิดบนพื้นผิว 2 มิติ และหากเราใช้การสังเกตุเงาแทนการสังเกตุที่ตัวคน กริยาที่สังเกตุได้จากเงาจะสอดคล้องกับกริยาที่คนกระทำ นั้นคือเราสามารถเข้าใจสิ่งที่เกิดขึ้นจากภาพ 2 มิติแทนการสังเกตุภาพที่เกิดใน 3 มิติได้ การทำ projection ไปบน plane หรือ a-xis ก็คล้ายกัน projection ที่เกิดขึ้นจะมีมิติลดลงจาก vector เดิมแต่เราก็ยังสามารถนำมาใช้งานและผลที่ได้มาก็ยังสอดคล้องกับผลที่จะเกิดขึ้นกับ vector จริงอยู่


[Top]

Reflection across a line

เมื่อแสงอาทิตย์ส่องมายังพื้นผิวที่สะท้อนแสงได้ก็จะเกิดการสะท้อนของแสงขึ้น (reflection) แสงที่ตกกระทบกับแสงสะท้อนจะทำมุมกับเส้นตรงที่ตั้งฉากกับพื้นผิวด้วยมุมที่เท่ากัน

รูปที่ 12


ในทาง linear transform หากต้องการหา  reflection vector ด้วยการใช้ matrix transform เราจำเป็นต้องหา matrix นั้นก่อน  

กำหนดให้เส้นตรงL1 บน 2D space แทนด้วยสมการ y=mx และมี a ที่ไม่อยู่บนเส้นตรง L1 (ดูรูปที่ 13) เทียบกับรูปที่ 12 แล้ว  L1 คือ orthogonal line a คือ แสงอาทิตย์ที่ตกลงมา (แต่เราจะพิจารณาในทิศทางตรงข้าม) การจะหา reflection ของ a รอบ L1 จำเป็นต้องหาส่วนที่หายไปก่อน คือ สิ่งที่เทียบได้กับพื้นผิวสะท้อนแสง

รูปที่ 13


เราทราบว่า เส้นตรงสองเส้นที่ตั้งฉากกัน เมื่อเอาความชันมาคูณกันจะได้ผลลัพธ์เป็น -1 นั่นคือ L2=1mx  คือเส้นตรงที่ตั้งฉากกับ L1 (รูปที่ 14)

รูปที่ 14


กำหนดให้ M เป็น Transform matrix ที่ใช้คำนวณหา reflection vector r ในระบบ 2D space แล้ว จะได้ว่า
Ma=r

พิจารณาเส้นตรง L1, เมื่อ x =1 แล้ว y = m  นั่นคือ b=[1m] จะต้องอยู่บนเส้นตรง L1 และ reflection vector ของ b ก็ต้องเป็น b (นึกถึงการฉายไฟฉายใส่กระจกโดยที่แนวของไฟฉายตั้งฉากกับกระจก) ดังนั้น Mb=b(9.0)M[1m]=[1m]

พิจารณาเส้นตรง L2, เมื่อ x = -m แล้ว  y = 1  นั้นคือ c=[m1] จะอยู่บนเส้นตรง L2 ทำให้เราทราบต่อไปว่า rc=[m1] คือ reflection vector ของ c (ดูรูป 15) 

รูปที่ 15

นั่นคือ Mc=rc(9.1)M[m1]=[m1]
จาก (9.0) และ (9.1) นำไปสู่ข้อสรุป (9.2)M[1mm1]=[1mm1]
แก้สมการ (9.2) เพื่อหา transform matrix M M[1mm1]=[1mm1]M[1mm1][1mm1]1=[1mm1][1mm1]1M=[1mm1]11+m2[1mm1]M=11+m2[1mm1][1mm1](9.3)M=11+m2[1m22m2mm21]
ประเด็นต่อเนื่องจาก (9.3) เมื่อ
  1. เส้นตรง L1 ขนานกับ x - axis ความชันของเส้นตรง (m) = 0, M = [1001]
  2. เส้นตรง L1 ทำมุม 45 กับ x - axis ความชันของเส้นตรง (m) = 1, M = [0110]
  3. เส้นตรง L1 ทำมุม 90 กับ x - axis ความชันของเส้นตรง (m) = , M = [1001]

[Top]

ความคิดเห็น