<?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>genetic algorithm &#8211; PARINYA.NET</title>
	<atom:link href="https://www.parinya.net/node/tag/genetic-algorithm/feed" rel="self" type="application/rss+xml" />
	<link>https://www.parinya.net</link>
	<description>ทฤษฎีการคำนวณสำหรับคอมพิวเตอร์และทฤษฎีการประมวลผลสารสนเทศ</description>
	<lastBuildDate>Sun, 19 Jan 2014 07:23:02 +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>Taxonomy ของ Genetic Algorithm</title>
		<link>https://www.parinya.net/node/1867</link>
					<comments>https://www.parinya.net/node/1867#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Sun, 19 Jan 2014 07:21:11 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Computation]]></category>
		<category><![CDATA[Feature]]></category>
		<category><![CDATA[genetic algorithm]]></category>
		<category><![CDATA[taxonomy]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1867</guid>

					<description><![CDATA[Taxonomy หรือ อนุกรมวิทธา]]></description>
										<content:encoded><![CDATA[<p>Taxonomy หรือ อนุกรมวิทธาน เป็นอะไรซักอย่างที่ถูกใช้เพื่อการจัดหมวดหมู่ครับ ที่เห็นเยอะ ๆ ก็ใช้ในการจัดหมวดหมู่ของสิ่งมีชีวิต เพื่อแบ่งชั้นแบ่งกลุ่มว่าอะไรพวกเดียวกับอะไร แล้วแต่ล่ะพวกนั้นมันไปเกี่ยวกับอะไรที่อยู่ในชั้นก่อนหน้านั้น เป็นต้น</p>
<p>ในทางทฤษฎีการคำนวณสำหรับคอมพิวเตอร์ ก็มี Taxonomy กับเขาเหมือนกันครับ เพราะเดี๋ยวนี้ทฤษฎีการคำนวณสำหรับคอมพิวเตอร์มันแตกสาย แตกลูกแตกหลานกันเยอะ บางทีได้ยินคุยกันก็รำคาญใจ จัดหมวดหมู่ชั้นช่วงกันผิด ๆ ถูก ๆ เหมือนกับมีคนมาบอกเราว่า กรุงเทพฯ, <em>พระประแดง</em>, นนทบุรี และ ปทุมธานี เป็นปริมณฑล (เห็นใช่มั้ยว่าพระประแดงมันไม่เข้าพวกเพราะมันเป็นอำเภอ?) หรือบอกเราว่าปริมณฑลภาคกลางที่ติดทะเล ได้แก่ สมุทรปราการ, <em>พระประแดง</em>, สมุทรสาคร และ สมุทรสงคราม (พระประแดงเป็นอำเภอของสมุทรปราการ)</p>
<p>ไอ้เจ้า Genetic Algorithm เองก็ถูกอ้างผิดเหมือนกันครับ เพราะเวลาถูกจัดหมวดหมู่อ้างถึง มันมักจะถูกอ้างให้อยู่ในระดับเดียวกับชั้นที่สูงกว่า 1 ช่วงบ้าง 2 ช่วงบ้าง หรือบางครั้งก็ถูกอ้างอิงกับ Class อื่นที่อยู่ในระดับที่ไม่เท่ากัน ดังนั้น เพื่อให้เข้าใจ Taxonomy ของมัน ผมก็เลยทำให้ดูตามภาพข้างล่างนี้แล้ว</p>
<figure id="attachment_1868" aria-describedby="caption-attachment-1868" style="width: 281px" class="wp-caption aligncenter"><a href="https://www.parinya.net/wp-content/uploads/2014/01/genetic_algorithm.png"><img fetchpriority="high" decoding="async" class="size-full wp-image-1868" alt="Taxonomy ของ Genetic Algorithm" src="https://www.parinya.net/wp-content/uploads/2014/01/genetic_algorithm.png" width="281" height="403" srcset="https://www.parinya.net/wp-content/uploads/2014/01/genetic_algorithm.png 281w, https://www.parinya.net/wp-content/uploads/2014/01/genetic_algorithm-209x300.png 209w" sizes="(max-width: 281px) 100vw, 281px" /></a><figcaption id="caption-attachment-1868" class="wp-caption-text">Taxonomy ของ Genetic Algorithm</figcaption></figure>
<p>จริง ๆ แล้วแต่ล่ะชั้นก็มีลูกหลานแตกสายออกไปเยอะครับ แต่ที่ทำให้ดูในภาพนี้เป็นการลำดับ Taxonomy ของ Genetic Algorithm ว่าสืบสายตรงจากอะไรลงมาอ่ะครับ ก็ประมาณนี้ครับ</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1867/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>การเลือกวิธีการสำหรับแก้ปัญหาทางปัญญาประดิษฐ์</title>
		<link>https://www.parinya.net/node/1692</link>
					<comments>https://www.parinya.net/node/1692#respond</comments>
		
		<dc:creator><![CDATA[ไท้ ปริญญา]]></dc:creator>
		<pubDate>Mon, 21 May 2012 09:35:57 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[artificial neural network]]></category>
		<category><![CDATA[ปัญญาประดิษฐ์]]></category>
		<category><![CDATA[genetic algorithm]]></category>
		<category><![CDATA[hidden markov model]]></category>
		<guid isPermaLink="false">http://www.parinya.net/?p=1692</guid>

					<description><![CDATA[ผมก็เหมือนคนทำงานวงการคอม]]></description>
										<content:encoded><![CDATA[<p>ผมก็เหมือนคนทำงานวงการคอมพิวเตอร์ทั่ว ๆ ไปครับ ที่อยากจะเรียนรู้วิธีการทางคอมพิวเตอร์ต่าง ๆ เอาไว้ เพื่อเอาไว้ประดับสติปัญญาตัวเอง เพื่อเอาไว้เป็นอาวุธทางปัญญาให้กับตัวเอง และหวังว่าซักวันหนึ่งจะได้นำความรู้นั้นไปสร้างคุณประโยชน์และผลประโยชน์ได้</p>
<p>แต่ผมก็เหมือนกับคนทั่วไป คือมีเวลาเท่ากับคนทั่วไป ดังนั้น ผมเลยต้องกำหนดปัญหาทางปัญญาประดิษฐ์ขึ้นมาก่อน แล้วค่อยคิดว่าจะเอาวิธีการไหนที่เหมาะสมมาแก้ปัญหา!!!</p>
<p>จากการศึกษาโดยส่วนตัวพบว่า วิธีการแก้ปัญหาทางปัญญาประดิษฐ์ที่นิยมใช้กันอย่างกว้างขวางในปัจจุบันนั้น มีอยู่ไม่กี่วิธีไม่ว่าจะเป็น Hidden Markov Model, Artificial Neural Network, Genetic Algorithm เป็นต้น และแต่ล่ะวิธีก็มี Algorithm ที่ถูกคิดค้นออกมาอีกเยอะแยะ ซึ่งบางอย่างก็แก้ปัญหาแบบเฉพาะเจาะจง แต่บางอย่างก็แก้ปัญหาได้กว้าง ๆ และรอให้มีผู้ค้นพบว่ามันควรจะใช้แบบเฉพาะเจาะจงในเรื่องใด ๆ</p>
<p>เดิมการแก้ปัญหาทางปัญญาประดิษฐ์ต่าง ๆ มักจะใช้วิธีการที่แยกจากกัน ไม่มีความเกี่ยวข้องกัน เช่น ถ้าจะรู้จำเสียงพูด ก็จะใช้วิธีการ Hidden Markov Model หรือ Artificial Neural Network อย่างใดอย่างหนึ่งไปเลย เป็นต้น แต่ภายหลังก็ค้นพบกันว่า การผสมผสานวิธีการแก้ปัญหาโดยการนำ<strong>หนึ่งปัญหามาแบ่งออกเป็นส่วน ๆ</strong> แล้วเอาวิธีการแก้ปัญหาที่ดีที่สุดมาใช้เพื่อแก้ปัญหาแต่ล่ะส่วนจะดีกว่า เช่น การรู้จำเสียงพูด แทนที่จะใช้วิธี Hidden Markov Model เพียงอย่างเดียว ก็อาจจะใช้วิธีการ Artificial Neural Network เพื่อแยกแยะอัตลักษณ์ของเสียงพูดก่อน แล้วจึงใช้ Hidden Markov Model เพื่อหาความน่าจะเป็นของเสียงพูด เป็นต้น</p>
<p>มันเลยทำให้เปิดโลกทัศน์ได้อย่างหนึ่งว่า การค้นพบหนทางใหม่ ๆ ในการแก้ปัญหาทางปัญญาประดิษฐ์นั้น ไม่ใช่การทำตาม ๆ สิ่งที่มีคนค้นพบหรือทำซ้ำกันบ่อย ๆ ด้วยวิธีการเดียวตลอดขั้นตอนการแก้ปัญหา หากแต่เป็นการผสมผสานกันด้วยหลายวิธีการ และวิธีการแต่ล่ะวิธีก็ควรจะต้องเหมาะสมกับปัญหาในแต่ล่ะส่วนที่เราต้องการแก้ปัญหา ซึ่งเราจะรู้ได้ว่ามันเหมาะหรือเปล่าเราก็ต้องลองเอง (ทำวิจัยนั่นแหล่ะ อย่างยาก) หรือไม่ก็ดูว่าใครหลาย ๆ คนที่ได้ลองพิสูจน์วิธีการ แล้วมันมีแนวโน้มที่จะใช้ได้ดี ไปได้สวยหรือเปล่า ก็เชื่อเขา ทำตามเขาไปก่อน</p>
<p>พอโม้มาถึงตรงนี้ ก็เลยได้ข้อสรุปไปโดยปริยายว่า เราไม่สามารถจะเรียนวิธีการสำหรับแก้ปัญหาทางปัญญาประดิษฐ์แค่อย่างเดียวแล้วจบ แต่ต้องเรียนหลาย ๆ อย่าง ต้องทำการทดลองซ้ำ ๆ ในวิธีการเหล่านั้นว่ามันแก้ปัญหาได้จริงหรือเปล่า (ซึ่งกินแรงพอควร) ต้องเปรียบเทียบจากคนที่เคยลองแล้ว (โดยการอ่านวารสารวิชาการ, วิทยานิพนธ์) และตัวเราเองก็ต้องมองให้ถึงแก่นว่าปัญหาทางปัญญาประดิษฐ์ของเรานั้น มันแยกออกเป็นส่วน ๆ เพื่อใช้วิธีการหลาย ๆ แบบ (ซึ่งเราคิดว่ามันเจ๋ง) มาแก้ปัญหาได้หรือเปล่า</p>
<p>สรุปก็คือต้องเรียนมาก ๆ รู้เยอะ ๆ นั่นแหล่ะ แล้วมันจะเข้าเส้นเอง ซึ่งผมเองก็ยังคงตั้งหน้าตั้งตาเรียนต่อไปเหมือนกัน</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.parinya.net/node/1692/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
