<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>neural network &#8211; PARINYA.NET</title>
	<atom:link href="https://www.parinya.net/node/tag/neural-network/feed" rel="self" type="application/rss+xml" />
	<link>https://www.parinya.net</link>
	<description>ทฤษฎีการคำนวณสำหรับคอมพิวเตอร์และทฤษฎีการประมวลผลสารสนเทศ</description>
	<lastBuildDate>Sun, 01 Jan 2017 05:07:15 +0000</lastBuildDate>
	<language>th</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>
	<item>
		<title>สาเหตุที่ไม่ค่อยชอบ Neural Network ซักเท่าไหร่</title>
		<link>https://www.parinya.net/node/2452</link>
					<comments>https://www.parinya.net/node/2452#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Sun, 01 Jan 2017 04:59:43 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Data Mining]]></category>
		<category><![CDATA[Pattern Recognition]]></category>
		<category><![CDATA[neural network]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=2452</guid>

					<description><![CDATA[เห็นทุกวันนี้งานทางด้าน A]]></description>
										<content:encoded><![CDATA[<p>เห็นทุกวันนี้งานทางด้าน AI ใช้ Neural Network มากขึ้นเรื่อย ๆ ซึ่งโดยส่วนตัวแล้วไม่ค่อยชอบโมเดลปัญญาประดิษฐ์แบบ Neural Network ซักเท่าไหร่ เพราะ &#8230;</p>
<figure id="attachment_2453" aria-describedby="caption-attachment-2453" style="width: 474px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2017/01/15723468_10155641312277586_5303280927547259387_o.jpg"><img fetchpriority="high" decoding="async" class="size-large wp-image-2453" src="https://www.parinya.net/wp-content/uploads/2017/01/15723468_10155641312277586_5303280927547259387_o-683x1024.jpg" alt="Model Neural Network แบบต่าง ๆ" width="474" height="711" srcset="https://www.parinya.net/wp-content/uploads/2017/01/15723468_10155641312277586_5303280927547259387_o-683x1024.jpg 683w, https://www.parinya.net/wp-content/uploads/2017/01/15723468_10155641312277586_5303280927547259387_o-200x300.jpg 200w, https://www.parinya.net/wp-content/uploads/2017/01/15723468_10155641312277586_5303280927547259387_o-768x1152.jpg 768w, https://www.parinya.net/wp-content/uploads/2017/01/15723468_10155641312277586_5303280927547259387_o.jpg 1000w" sizes="(max-width: 474px) 100vw, 474px" /></a><figcaption id="caption-attachment-2453" class="wp-caption-text">Model Neural Network แบบต่าง ๆ</figcaption></figure>
<ol>
<li> แปลความยาก คือเวลามันเรียนรู้แล้วสร้างเส้นแบ่ง เส้นแบ่งมันเป็นเส้นโค้ง โค้งไปมาตามข้อมูลที่มันเรียน มันเลยไม่มีความเป็นกลาง ลองนึกถึงว่าเราตีเส้นตรงเพื่อแบ่งเขต เรายังตีความง่าย แต่พอมันโค้ง เราต้องตีความว่าทำไมมันโค้ง มันหลบทำไม มันมีอะไรพิเศษถึงต้องโค้งหลบ (มัน<span class="text_exposed_show">เหมือนทางด่วนที่สร้างหลบบ้านคนรวยมั้ย)</span></li>
<li>ถ้าอยากได้เส้นแบ่งเป็นเส้นตรง ก็ต้องเลือกใช้ Neural Network แบบ Perceptron แต่มุมเอียงของเส้นตรงที่แบ่งข้อมูล ก็จะเอียงแบบไม่มีหลักการ ถ้าเอาไปเทียบกับ Linear Support Vector Machine หรือ Linear Discriminant Analysis พวกนั้นยังตีเส้นตรงแบ่งแบบมีหลักการกว่าเยอะ</li>
<li>มันช้า แต่ล่ะ epoch แปรผันตรงกับ node และ layer ยิ่งเยอะ ยิ่งช้า</li>
<li>โมเดลมันเป็นแบบปลายเปิด คือ ไม่รู้ว่าจะต้องออกแบบ Hidden Layer หรือ Recurrent Layer หรือ Kernel Layer กี่ node หรือกี่ layer ถึงจะเหมาะกับปัญหาที่จะแก้ ต้องลองผิดลองถูกไปเรื่อยๆเอง</li>
<li>การสุ่มค่าน้ำหนักเริ่มต้น เป็นไปตามดวง สุ่มไม่ดีเรียนรู้ช้า สุ่มดีเรียนรู้เร็ว</li>
<li>ต้องใช้ข้อมูลเพื่อเรียนรู้เยอะมาก กว่าจะแบ่งเขตข้อมูลได้อย่างเหมาะสม</li>
</ol>
<div class="text_exposed_show">
<p>ไม่รู้คนอื่นเจอแค่ไหน แต่ที่ส่วนตัวเคยสัมผัสมา ก็ประมาณนี้</p>
<p>แต่ก็ไม่ใช่ว่า Neural Network จะไม่มีอะไรดีเลยในสายตาผมนะ ผมยังมองว่ามันมีจุดดีอยู่บ้าง ซึ่งเป็นจุดที่ผมชอบมาก ๆ เลย</p>
<p>นั่นก็คือ เมื่อสร้าง Model Neural Network ขึ้นมา แล้วสอนมันจนได้ประสิทธิผลที่พอใจแล้ว เราก็ไม่จำเป็นจะต้องสนใจกับข้อมูลที่สอนอีกต่อไป สนใจเฉพาะโมเดลที่ได้ก็พอ</p>
<p>จากนั้นก็เอาโมเดลที่ได้ ไปใช้งานอย่างอื่นต่อไป (ผมเคยเปรย ๆ ไว้ว่ามันเป็นแบบที่สองในหัวข้อ<a href="https://www.parinya.net/node/2168">วิธีทำให้คอมพิวเตอร์คิดเองได้</a>) ซึ่งมันเป็นอะไรที่ประหยัดพื้นที่จัดเก็บมาก ๆ เลยล่ะ</p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/2452/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>สร้างปัญหาใหม่ เพื่อแก้ปัญหาเก่า</title>
		<link>https://www.parinya.net/node/1742</link>
					<comments>https://www.parinya.net/node/1742#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Mon, 26 Nov 2012 07:53:11 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[artificial inteligence]]></category>
		<category><![CDATA[genetic algorithm]]></category>
		<category><![CDATA[neural network]]></category>
		<category><![CDATA[speech recognition]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1742</guid>

					<description><![CDATA[การแก้ปัญหาทางด้านปัญญาปร]]></description>
										<content:encoded><![CDATA[<p>การแก้ปัญหาทางด้านปัญญาประดิษฐ์นั้น บางครั้งมักมีลักษณะร่วมเหมือนกันอยู่อย่างหนึ่ง คือเมื่อเราเสนออัลกอริทึมหรือโมเดลเพื่อมาแก้ปัญหา เราก็จะพบว่าสิ่งที่เรานำมาแก้ปัญหานั้น มันช่วยแก้ปัญหาได้จริง แต่ตัวมันเองก็สร้างปัญหาใหม่ขึ้นมาเหมือนกัน เราก็เลยต้องมาแก้ปัญหาของตัวที่ใช้แก้ปัญหาอีกทอดหนึ่ง (เอาเข้าไป)</p>
<p>เหมือนกับการที่เราปวดหมอนรองกระดูกอักเสบ เลยทำให้เราต้องแก้ด้วยการกินยาคลายกล้ามเนื้อและยาแก้อักเสบ พอเรากินไปเรื่อย ๆ แล้วอาการปวดหมอนรองกระดูกอักเสบของเราก็ลดลง แต่ยามันกลับทำให้เกิดผลข้างเคียงคือระคายเคืองกระเพาะอาหาร จนทำให้เราต้องหายาเคลือบกระเพาะอาหารมากินเพื่อรักษาโรคอีกทอดหนึ่ง!!!</p>
<p>เดี๋ยวนี้มีการนำ &#8220;ความน่าจะเป็น&#8221; เข้ามาช่วยแก้ปัญหาทางด้านปัญญาประดิษฐ์มากขึ้น โดยโมเดลหรืออัลกอริทึมที่มักจะถูกนำเสนอ ส่วนใหญ่จะเน้นการหาความน่าจะเป็นในเส้นทางการตัดสินใจทั้งหมด</p>
<p>ถ้ามีเส้นทางเชื่อมโยงกันน้อย การใช้พละกำลังของคอมพิวเตอร์เพื่อช่วยคำนวณก็ยังช่วยให้เราได้ผลลัพท์ที่แม่นยำได้อยู่ แต่ถ้าหากต้องคำนวณเพื่อหาความน่าจะเป็นในเส้นทางเชื่อมโยงที่มากขึ้น ๆ เรื่อย ๆ เราก็จะไม่สามารถหาผลลัพท์ที่แม่นยำได้ในเวลาที่เหมาะสม เช่น บางปัญหามีเส้นทางเชื่อมโยง 3 เส้นทาง อาจใช้เวลาในการคำนวณเพียงแค่ไม่กี่วินาที แต่ยิ่งมีเส้นทางเชื่อมโยงหลายเส้นทางมากขึ้น อาจใช้เวลาเป็นวันหรือเป็นเดือนในการคำนวณ ซึ่งไม่สามารถยอมรับได้ เพราะจำเป็นต้องใช้ผลลัพท์ในเวลาที่จำกัด</p>
<p>นั่นทำให้เราเห็นว่าโมเดลหรืออัลกอริทึมที่นำเสนอ สามารถแก้ปัญหาได้จริง แต่ตัวมันเองก็สร้างปัญหาใหม่ ในเรื่องของช่วงเวลาในการคำนวณที่เหมาะสมและยอมรับได้ขึ้นมา!!!</p>
<p>ยกตัวอย่างเช่น การใช้ Hidden Markov Model ในการแก้ปัญหา Speech Recognition เพื่อค้นหาเส้นทางที่จะให้<strong>ความน่าจะเป็นที่มีค่ามากที่สุด</strong> ระหว่าง Hidden States (ป้ายคำ) และ Observation States (คลื่นเสียงซึ่งผ่านการ Overlap Window, ผ่านการเข้า Hamming Window และ ผ่านการประมาณพันธะเชิงเส้น เพื่อหาสัมประสิทธิ์บ่งจำเพาะช่วงเสียง ซึ่งเป็นตัวแปร 10 &#8211; 15 ตัว สำหรับแทนเอกลักษณ์ของช่วงคลื่นเสียงนั้น ๆ)</p>
<p>เราสามารถค้นหาได้ด้วยการค้นมันทุกเส้นทางที่เป็นไปได้ นั่นหมายความว่า ยิ่งมีเส้นทางมากเท่าไหร่ ก็จะยิ่งใช้เวลาในการค้นมากขึ้นเท่านั้น ดังนั้น มันจึงกลายเป็นปัญหา เพราะมันช้า มันไม่ทันกิน ดังนั้น จึงมีคนชื่อ Viterbi คิดค้นอัลกอริทึมชื่อ Viterbi ขึ้นมา เพื่อการเฟ้นสุ่มเส้นทางที่เหมาะสม ที่จะให้<strong>ความน่าจะเป็นที่มีค่ามากพอประมาณ</strong> ซึ่งถือเป็นค่าที่เหมาะสมพอจะยอมรับได้ เพื่อมาเป็นผลลัพท์ในการใช้งาน โดยค่าที่ได้มาก็อาจจะเป็นค่าที่มากที่สุดจริง ๆ หรืออาจจะไม่ใช่ก็ได้ มันไม่มีใครรู้ เพราะถ้าอยากจะรู้ มันก็ต้องเสียเวลามาคำนวณเพื่อให้รู้ ซึ่งไม่มีใครอยากจะรอ</p>
<blockquote><p>Speech Recognition &lt;- Hidden Markov Model &lt;- Viterbi Algorithm</p></blockquote>
<p>บางครั้ง การแก้ปัญหาของปัญหาก็ไม่ได้เกิดขึ้นแค่ 2 จังหวะ แต่อาจจะเกิดขึ้น 3 จังหวะ เช่น การใช้ Neural Network เพื่อมาแก้ปัญหา Pattern Recognition ซึ่งการทำให้ Neural Network เรียนรู้คำตอบที่เหมาะสม เราก็จำเป็นต้องป้อนค่ากลับให้กับ Neural Network แต่ตัว Neural Network เองก็มีปัญหาในการป้อนกลับค่าเหมือนกัน เพราะยิ่งมีเส้นโครงข่ายและลำดับชั้นใน Neural Network มากเท่าไหร่ ก็ยิ่งต้องใช้เวลาในการคำนวณเพื่อป้อนกลับค่ามากเท่านั้น ดังนั้น จึงมีคนคิดจะประยุกต์ใช้ Genetic Algorithm เพื่อช่วยเฟ้นสุ่มเส้นทางที่เหมาะสมในการป้อนค่ากลับ (เส้นไหนมันไม่จำเป็นใช้ ก็ไม่ต้องเสียเวลาไปป้อนค่ากลับให้มัน)</p>
<blockquote><p>Pattern Recognition &lt;- Neural Network &lt;- Backpropagation &lt;- Genetic Algorithm</p></blockquote>
<p>โดยสรุปแล้ว การแก้ปัญหาทางปัญญาประดิษฐ์ก็เหมือนกับการรักษาโดยแพทย์แผนปัจจุบัน คือยังไงก็ต้องมีผลข้างเคียงให้ต้องแก้เป็นทอด ๆ อยู่ดี</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1742/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>เรื่องจริงเกี่ยวกับ Neural Network ที่ไม่ค่อยมีใครบอก</title>
		<link>https://www.parinya.net/node/1690</link>
					<comments>https://www.parinya.net/node/1690#comments</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Fri, 27 Apr 2012 15:05:37 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Pattern Recognition]]></category>
		<category><![CDATA[artificial neural network]]></category>
		<category><![CDATA[เรื่องจริง]]></category>
		<category><![CDATA[ไม่มีใครบอก]]></category>
		<category><![CDATA[neural network]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1690</guid>

					<description><![CDATA[ช่วงนี้ผมกำลังอ่านหนังสือ]]></description>
										<content:encoded><![CDATA[<p>ช่วงนี้ผมกำลังอ่านหนังสือชื่อ Neural Network Design แต่งโดย Hagan, Demuth และ Beale เป็นการอ่านแบบจริงจังไม่จิงโจ้ อ่านเพื่อหวังจะเอาไปต่อยอดทำวิจัย ไม่ได้อ่านแบบไก่กา ผิวเผิน ลวก ๆ เพื่อเอาไปสอบแล้วก็ลืม ๆ ไปอะไรแบบนั้น</p>
<p>คนนอกที่ไม่เคยเรียนรู้ Neural Network แต่มีความสนใจก็จะเข้าใจไปแบบนึง ส่วนคนในที่ได้เรียนรู้แล้วก็เข้าใจอีกแบบนึง ดังนั้น มาเรียบเรียงความเข้าใจที่เป็นความจริงเกี่ยวกับ Neural Network กันดีกว่า</p>
<ul>
<li>Neural Network เป็นชื่อเรียกสั้น ๆ ถ้าเป็นเต็ม ๆ เขาเรียกกันว่า Artificial Neural Network หรือว่า ANN</li>
<li>จริง ๆ แล้ว Neural Network เป็นโมเดลทางคณิตศาสตร์ แต่คนคิดค้นเขาอยากจะให้เข้าใจง่าย ๆ เขาเลยวาดออกมาเป็นรูปภาพ</li>
<li>คณิตศาสตร์ที่ใช้เกี่ยวกับ Neural Network จะเป็นพีชคณิตเชิงเส้น, เมตริกซ์ และ เวกเตอร์</li>
<li>Neural Network มาเกี่ยวกับสาขาวิชา Computer Science เพราะมันเป็นโมเดลที่ช่วยแก้ปัญหาทางด้าน Machine Learning ซึ่งเป็นแขนงวิชาย่อยของแขนงวิชา Artificial Intelligence ได้</li>
<li>เราสามารถทำความเข้าใจ Neural Network ได้หลายวิธี ไม่ว่าจะเป็นการทำความเข้าใจผ่านรูปภาพโมเดล, ผ่านสมการ Summation, ผ่าน Matrix หรือแม้แต่ผ่านรูปภาพปริภูมิ 2 มิติหรือ 3 มิติ สรุปคือแล้วแต่จริตของใครว่าจะถนัดแบบไหน เพราะเข้าใจแบบไหนก็ได้ผลลัพธ์เหมือนกัน เช่นบางคนไม่เคยเรียน Matrix มาก่อน แต่อาจจะเข้าใจด้วยสมการ Summation ก็ได้ เป็นต้น</li>
<li>มีนักวิจัยเยอะแยะในโลกใบนี้ ที่พยายามคิดค้น Neural Network ในรูปแบบต่าง ๆ บางรูปแบบก็ไม่เป็นที่นิยม บางรูปแบบเคยเป็นที่นิยมแต่ล้าสมัยแล้ว บางรูปแบบก็แก้ปัญหาได้บางเรื่องแต่บางเรื่องก็แก้ไม่ได้ บางรูปแบบยังต้องต่อยอดไปอีกหลายขุมถึงจะใช้ได้</li>
<li>การวิจัย Neural Network รูปแบบใหม่ ๆ เป็นเรื่องยาก นักวิจัยส่วนใหญ่เลยเลือกจะเอา Neural Network รูปแบบที่มีคนคิดขึ้นแล้ว มาประยุกต์เพื่อแก้ปัญหาต่าง ๆ แทน</li>
<li>Neural Network เป็นโมเดลทางคณิตศาสตร์ ดังนั้น นักวิจัยส่วนใหญ่จึงมักจะใช้ MATLAB เพื่อทำวิจัย เพราะ MATLAB มันเก่งเรื่อง Matrix และการแสดงผลภาพในปริภูมิ 2 มิติและ 3 มิติมาก ๆ แถมยังมีเครื่องมือเกี่ยวกับ Neural Network ในรูปแบบที่เป็นที่นิยมบรรจุอยู่อีกต่างหาก</li>
<li>การทำให้ Neural Network ฉลาดก็คือการสอนมัน แต่เรื่องจริงไม่ได้หมายความว่าเราใช้ปากไปสั่งสอนมัน หรือใช้การเขียนโปรแกรมไปสั่งมันแบบนั้น แต่มันหมายถึงการที่เราป้อนตัวอย่างข้อมูลให้มัน แล้วให้มันถามเรากลับมาว่า &#8220;ใช่&#8221; หรือ &#8220;ไม่ใช่&#8221; หรือ &#8220;เกือบใช่&#8221; หรือ &#8220;เกือบไม่ใช่&#8221; หรือ &#8220;คล้ายจะใช่&#8221; หรือ &#8220;คล้ายจะไม่ใช่&#8221; แล้วให้เราตอบมันกลับไปว่าเออมันต้องอย่างนั้นนะอย่างนี้นะ ให้มันจำของมัน แล้วก็ปรับค่าน้ำหนักไปเรื่อย ๆ</li>
<li>ถ้าจะให้มันฉลาด เราก็ต้องป้อนตัวอย่างข้อมูลให้มันเยอะ ๆ แต่พอเป็นแบบนั้น เราเองก็ขี้เกียจมาตอบมันเหมือนกัน ดังนั้น เราก็ต้องตอบมันไประดับนึง แล้วจากนั้นก็ให้มันตอบคำถามของตัวเอง ให้มันปรับตัวของมันเอง</li>
<li>เคยอ่านเจอที่ไหนไม่รู้เขาบอกว่า ถ้าจะให้ Neural Network ปรับตัวและปรับค่าน้ำหนักจนกระทั่งนึกรู้ได้แม่นยำ เราต้องป้อนตัวอย่างข้อมูลเพื่อสอนมันเป็นล้าน ๆ ชิ้นเลยทีเดียว</li>
<li>นักวิจัยส่วนใหญ่ที่เอา Neural Network ไปทำ Pattern Recognition มักไม่เคยได้ค่่าความแม่นยำเกิน 85% เลย ไม่รู้ทำไมเหมือนกัน?</li>
<li>สุดท้ายนักวิจัยส่วนใหญ่ก็เลยหันเหไปวิจัยแบบผนวก โดยการแก้ปัญหา Pattern Recognition ด้วยการใช้ Neural Network รวมกับ Genetic Programming แทน</li>
</ul>
<p>สรุปแล้ว งานวิจัยทางด้าน Pattern Recognition ล้วนใช้คณิตศาสตร์อย่างเยอะเลยอ่ะ แล้วผมก็อ่อนคณิตศาสตร์ซะด้วยสิ แย่จริง ๆ</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1690/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
