การแปลความโมเดล Neural Network ใน Weka (ตอนที่ 1)

ช่วงที่ผ่านมาผมได้รับคำถามที่น่าสนใจจากหลายๆ ท่านทำให้ผมต้องไปค้นคว้าหาข้อมูลเพื่อมาตอบคำถาม และทำให้เข้าใจมากขึ้น วันนี้ผมขอนำสิ่งที่ผมไปค้นหาเกี่ยวกับการแปลความหมายในโมเดลของ Neural Network มาเล่าสู่กันฟัง (share) ครับ ^^

    1. ก่อนที่เราจะสร้างโมเดล Neural Network หรือใน Weka จะเรียกว่า Multi Layer Perceptron (MLP) ได้นั้นเราต้องมีข้อมูลเสียก่อน ในตอนนี้ผมจะใช้ข้อมูลสมมุติเกี่ยวกับราคาขายบ้านในประเทศสหรัฐอเมริกา ซึ่งมีทั้งหมด 6 แอตทริบิวต์ โดยมีค่าข้อมูลต่างๆ ดังแสดงในตารางที่ 1 และไฟล์ ARFF แสดงในรูปที่ 1ตารางที่ 1

       แสดงข้อมูลรายละเอียดของบ้านพร้อมทั้งราคา

      houseSizelotSizebedroomsgranitebathroomsellingPrice
      35299191600205000
      324710061511224900
      403210150501197900
      239714156410189900
      22009600401195000
      353619994611325000
      29839365501230000
      @RELATION house@ATTRIBUTE houseSize NUMERIC
      @ATTRIBUTE lotSize NUMERIC
      @ATTRIBUTE bedrooms NUMERIC
      @ATTRIBUTE granite NUMERIC
      @ATTRIBUTE bathroom NUMERIC
      @ATTRIBUTE sellingPrice NUMERIC@DATA
      3529,9191,6,0,0,205000
      3247,10061,5,1,1,224900
      4032,10150,5,0,1,197900
      2397,14156,4,1,0,189900
      2200,9600,4,0,1,195000
      3536,19994,6,1,1,325000
      2983,9365,5,0,1,230000รูปที่ 1

      แสดงข้อมูลในไฟล์ ARFF

    2. หลังจากที่เราได้เตรียมข้อมูลเรียบร้อยแล้ว เราก็จะโหลดข้อมูลเข้าไปใช้งานใน Weka กันครับ ขั้นแรกให้เราเลือกที่เมนู Open File ในแท็บ Preprocess และเลือกไฟล์ house.arff รายละเอียดของแอตทริบิวต์ต่างๆ จะแสดงในรูปที่ 2
      Screen Shot 2557-03-11 at 6.21.05 AM
      รูปที่ 2 แสดงข้อมูลที่โหลดเข้ามาใน Weka Explorer

 

    1. ถัดจากนั้นคลิกที่แท็บ Classify เพื่อเตรียมตัวสร้างโมเดล Neural Network โดยคลิกที่ปุ่ม Choose เลือกคลิกที่กลุ่ม functions และเลือก MultiLayerPerceptron และกดปุ่ม Start โมเดลของ Neural Network จะแสดงในส่วนของ Classifier Output  ดังในรูปที่ 3
      Screen Shot 2557-03-11 at 7.16.05 AM
      รูปที่ 3 แสดงโมเดลของ Neural Network ที่หาได้ในส่วนของ Classifier Output

 

  1. โมเดลที่แสดงออกมานี้เป็นค่าน้ำหนัก (weight) ของเส้นที่เชื่อมระหว่างแต่ละโหนดใน Neural Network เพื่อให้เข้าใจมากขึ้นขออธิบายโครงสร้างของ Neural Network คร่าวๆ ดังในรูปที่ 4 และ 5 ครับScreen Shot 2557-03-11 at 8.13.41 AM
    รูปที่ 4 แสดงโครงสร้าง Neural Network ของไฟล์ที่โหลดเข้าไป
    node in nuron network
    รูปที่ 5 แสดงการคำนวณภายในแต่ละโหนดของ Neural Network

    จากรูปที่ 4 ซึ่งแสดงโครงสร้างของ Neural Network ซึ่งประกอบด้วยโหนด (รูปวงกลมสีเขียว สีแดง และสีเหลือง) และเส้นเชื่อมโยงแต่ละโหนด เมื่อเราพิจารณาการวางตัวของโหนดแล้วจะแบ่งออกได้เป็น 3 ชั้น (layer) คือ

      • ชั้นที่ 1 จะเรียกว่า Input layer ประกอบด้วยโหนดสีเขียวซึ่งแสดงแอตทริบิวต์ต่างๆ ในไฟล์ที่เราโหลดเข้าไป (ถ้าจะพูดให้ง่ายๆ จำนวนโหนดในชั้นนี้จะเท่ากับจำนวนแอตทริบิวต์ซึ่งก็คือ 5 แอตทริบิวต์นั่นเอง)
      • ชั้นที่ 2 จะเรียกว่า Hidden layer ประกอบด้วยโหนดสีแดง ซึ่งจำนวนของโหนดในชั้นนี้นั้นโดยปกติ (default) จะเท่ากับจำนวนแอตทริบิวต์ทั้งหมด (5 แอตทริบิวต์ทั่วไปและ 1 คลาส) หารด้วย 2 ดังนั้นจึงได้เป็น 3 โหนด
      • ชั้นที่ 3 จะเรียกว่า Output layer ประกอบด้วยโหนดสีเหลือง

    ในแต่ละโหนดที่อยู่ในชั้น Hidden และ Output จะมีการคำนวณดังในรูปที่ 5 โดยจะแบ่งเป็น 2 ขั้นตอนย่อย คือ

      • การคำนวณค่าผลรวม (Sum) ในขั้นนี้จะนำค่าของโหนดต่างๆ คูณกับค่าน้ำหนักในแต่ละเส้นเชื่อมแล้วจึงนำมารวมกันเป็นค่าสุดท้าย
      • การคำนวณค่าที่ส่งออกโดยผ่านฟังก์ชัน activate (activate function) ฟังก์ชันส่วนใหญ่ที่ใช้ คือ sigmoid funcion ซึ่งมีลักษณะเป็นเหมือนรูปอักษร S โดยมีฟังก์ชันคือ 1/(1+e-x)

    ผมจะแสดงตัวอย่างการคำนวณให้ดูในขั้นถัดไป

  2. จากโมเดลของ Neural Network ที่สร้างได้เราสามารถนำมาสร้างเป็นตารางได้ดังตารางที่ 2 ซึ่งแสดงค่าน้ำหนักระหว่าง Input node และ Hidden node (เพื่อให้ดูได้ง่ายขึ้นจะแสดงเพียงแค่ทศนิยม 2 หลักเท่านั้น) ส่วนตารางที่ 3 แสดงค่าน้ำหนักระหว่าง Hidden node ไปยัง Output node

    ตารางที่ 2 แสดงข้อมูลน้ำหนักระหว่าง Input node และ Hidden node

    List of input nodeNode 1Node 2Node 3
    houseSize0.470.640.65
    lotSize-1.26-0.97-1.02
    bedrooms-1.54-0.80-0.84
    granite0.34-0.21-0.20
    bathroom-0.94-0.26-0.32
    Threshold-0.34-0.78-0.79
    ตารางที่ 3 แสดงข้อมูลน้ำหนักระหว่าง Hidden node และ Output node
    List of Hidden nodeOutput
    Node 1-1.40
    Node 2-1.04
    Node 3-1.08
    Threshold1.16

ถึงขั้นนี้คงจะพอเข้าใจความหมายของโมเดล Neural Network ใน Weka กันบ้างแล้วนะครับ ในวันถัดไปผมจะแสดงการทำนายโดยเอาข้อมูลใส่ในโมเดลของ Neural Network นี้ครับ

Posted in data mining, machine learning, weka and tagged , , , .

Leave a Reply

Your email address will not be published. Required fields are marked *