<?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"
	>

<channel>
	<title>Blog Khoa Học Máy Tính</title>
	<atom:link href="http://www.procul.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.procul.org/blog</link>
	<description>Tầm nhìn ta thật ngắn mà đã thấy bao thứ  để làm -- Alan Turing</description>
	<pubDate>Mon, 18 Aug 2008 14:51:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Thư học trò</title>
		<link>http://www.procul.org/blog/2008/08/18/th%c6%b0-h%e1%bb%8dc-tro/</link>
		<comments>http://www.procul.org/blog/2008/08/18/th%c6%b0-h%e1%bb%8dc-tro/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 14:51:33 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Dành cho du học sinh]]></category>

		<category><![CDATA[Vui - Giải Trí]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=896</guid>
		<description><![CDATA[Như mọi năm, đến gần thời gian mà các sinh viên chuẩn bị nộp đơn vào grad school tôi nhận được khá nhiều emails từ các prospective students từ nhiều nơi trên thế giới. (Nhiều nơi = TQ và Ấn.) Hôm nay mới nhận được một thư khá dài dòng, kể thành tích nghiên cứu [...]]]></description>
			<content:encoded><![CDATA[<p>Như mọi năm, đến gần thời gian mà các sinh viên chuẩn bị nộp đơn vào grad school tôi nhận được khá nhiều emails từ các prospective students từ nhiều nơi trên thế giới. (Nhiều nơi = TQ và Ấn.) Hôm nay mới nhận được một thư khá dài dòng, kể thành tích nghiên cứu MPLS, traffic engineering đủ loại, xong rồi kết luận, và tôi trích nguyên văn</p>
<blockquote><p>I hope we can keep touching</p></blockquote>
<p>Email còn gửi kèm ảnh, một chú &#8230; húi cua đeo kính cận.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/08/18/th%c6%b0-h%e1%bb%8dc-tro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tin Thở Dài</title>
		<link>http://www.procul.org/blog/2008/08/12/tin-th%e1%bb%9f-dai/</link>
		<comments>http://www.procul.org/blog/2008/08/12/tin-th%e1%bb%9f-dai/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 14:09:30 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Tin tức đó đây]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=895</guid>
		<description><![CDATA[Thứ nhất, có qui định mới về hoạt động cứu trợ từ thiện ở VN
TT - Hình ảnh đoàn cứu trợ của các đơn vị, cơ quan báo chí, doanh nghiệp đến trực tiếp vùng thiên tai, hỏa hoạn, sự cố lớn giúp đỡ người dân bị nạn từ nay sẽ không còn. Trước nhiều [...]]]></description>
			<content:encoded><![CDATA[<p>Thứ nhất, có qui định mới về hoạt động cứu trợ từ thiện ở VN</p>
<blockquote><p>TT - Hình ảnh đoàn cứu trợ của các đơn vị, cơ quan báo chí, doanh nghiệp đến trực tiếp vùng thiên tai, hỏa hoạn, sự cố lớn giúp đỡ người dân bị nạn từ nay sẽ không còn. Trước nhiều ý kiến băn khoăn khác nhau về việc này, bà Hà Thị Liên - ủy viên ban thường trực Mặt trận Tổ quốc VN - giải thích:</p>
<p>- Tuần tới chúng tôi sẽ họp với các tổ chức liên quan về việc thành lập các ban cứu trợ, thảo luận việc triển khai nghị định 64 và thông tư 72 về công tác cứu trợ. Còn quỹ cứu trợ hiện có ở các cơ quan báo chí và các cơ quan khác sắp tới, theo tôi, nên chuyển hết về tài khoản của ban cứu trợ trung ương.</p>
<p>&#8230;</p>
<p><a href="http://www.tuoitre.com.vn/Tianyon/Index.aspx?ArticleID=272925&amp;ChannelID=3">Xem toàn bài trên TTOnline</a></p></blockquote>
<p>Thứ hai, <a href="http://www.tuoitre.com.vn/Tianyon/index.aspx?ArticleID=273273&amp;ChannelID=3">một tin không liên quan</a></p>
<blockquote><p>TT - Chiều muộn, Alejandra và Georg - đôi vợ chồng người Mexico - đi lượm rác dọc bờ biển Nha Trang. Họ đến đây du lịch và rất thích bãi biển tuyệt đẹp với làn nước trong xanh, song họ nói biển sẽ đẹp hơn nhiều nếu không có rác. Thế là vợ xách bao, chồng cặm cụi lượm từng que kem, túi nilông, hộp xốp&#8230; vương vãi trên bờ biển.</p>
<p class="pBody">Cảm kích trước thiện chí của hai người bạn nước ngoài, chị Tú đi dạo gần đó dù đang mang thai khá lớn cũng vui vẻ nhập cuộc. Cả ba người cùng đi lượm đến lúc rác đầy bao mới thôi.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/08/12/tin-th%e1%bb%9f-dai/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jason Lezak</title>
		<link>http://www.procul.org/blog/2008/08/11/jason-lezak/</link>
		<comments>http://www.procul.org/blog/2008/08/11/jason-lezak/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 17:27:15 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Tin tức đó đây]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=894</guid>
		<description><![CDATA[Một cuộc đua tiếp sức 4&#215;100 mét sải kỳ tuyệt! Đầy kịch tính, must-see TV. Xem phân tích kỹ thuật ở đây. Trong khoảng 20 mét cuối, Jason Lezak còn thua Alain Bernard nửa thân người, để rồi gần như bay trên mặt nước về đích trước đội Pháp 0.08 giây. Điều kỳ diệu là [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nbcolympics.com/video/player.html?assetid=0811_hd_swb_hl_l0194&amp;channelcode=sportsw">Một cuộc đua tiếp sức 4&#215;100 mét sải kỳ tuyệt!</a> Đầy kịch tính, must-see TV. Xem <a href="http://voices.washingtonpost.com/olympics/2008/08/mens_4x100_freestyle_relay_som.html?hpid=artslot">phân tích kỹ thuật</a> ở đây. Trong khoảng 20 mét cuối, Jason Lezak còn thua Alain Bernard nửa thân người, để rồi gần như bay trên mặt nước về đích trước đội Pháp 0.08 giây. Điều kỳ diệu là Jason đã 32 tuổi, và có đến 5 đội trong trận chung kết này phá kỷ lục thế giới cũ, và đội về nhất bơi nhanh hơn kỷ lục cũ gần 4 giây. (Trong những kỳ thi như thế này, 1 giây đã là infinity.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/08/11/jason-lezak/feed/</wfw:commentRss>
		</item>
		<item>
		<title>So sánh</title>
		<link>http://www.procul.org/blog/2008/08/07/so-sanh/</link>
		<comments>http://www.procul.org/blog/2008/08/07/so-sanh/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 16:37:36 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Vui - Giải Trí]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=893</guid>
		<description><![CDATA[
Tìm cụm tử &#8220;Cuil vs Google&#8221; qua cuil
Tìm cụm từ &#8220;Cuil vs Google&#8221; qua google

]]></description>
			<content:encoded><![CDATA[<ul>
<li>Tìm cụm tử &#8220;Cuil vs Google&#8221; <a href="http://www.cuil.com/search?q=cuil%20vs%20google&amp;sl=long">qua cuil</a></li>
<li>Tìm cụm từ &#8220;Cuil vs Google&#8221; <a href="http://www.google.com/search?q=cuil+vs+google&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a">qua google</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/08/07/so-sanh/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Đề thi toán quốc tế 2008</title>
		<link>http://www.procul.org/blog/2008/08/01/d%e1%bb%81-thi-toan-qu%e1%bb%91c-t%e1%ba%bf-2008/</link>
		<comments>http://www.procul.org/blog/2008/08/01/d%e1%bb%81-thi-toan-qu%e1%bb%91c-t%e1%ba%bf-2008/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 17:39:29 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Combinatorics]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=892</guid>
		<description><![CDATA[Như mọi khi, tôi quan tâm đến bài tổ hợp trong đề năm nay:
Let n and k be positive integers with k ≥ n and k−n an even number. Let 2n lamps labelled 1, 2, . . . , 2n be given, each of which can be either on or off. Initially all the lamps [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.procul.org/blog/2007/07/27/d%e1%bb%81-thi-toan-qu%e1%bb%91c-t%e1%ba%bf-2007/">Như mọi khi</a>, tôi quan tâm đến bài tổ hợp trong <a href="http://www.imo-2008.es/examenes/eng.pdf">đề năm nay</a>:</p>
<blockquote><p>Let n and k be positive integers with k ≥ n and k−n an even number. Let 2n lamps labelled 1, 2, . . . , 2n be given, each of which can be either on or off. Initially all the lamps are off. We consider sequences of steps: at each step one of the lamps is switched (from on to off or from off to on).</p>
<p>Let N be the number of such sequences consisting of k steps and resulting in the state where lamps 1 through n are all on, and lamps n + 1 through 2n are all off.</p>
<p>Let M be the number of such sequences consisting of k steps, resulting in the state where lamps 1 through n are all on, and lamps n + 1 through 2n are all off, but where none of the lamps n + 1 through 2n is ever switched on.</p>
<p>Determine the ratio N/M.</p></blockquote>
<p>Bài này dễ một cách đáng ngạc nhiên so với bài tổ hợp năm ngoái. Bản thân câu hỏi đã gợi ý hướng suy nghĩ: tính N/M có nghĩa là ta nên xét tương quan giữa các chuỗi on/off loại 1 và các chuỗi on/off loại 2. Nôm na, N - tổng số các chuỗi loại 1 - là tổng số các chuỗi có k phần tử thuộc tập {1, 2, &#8230;, 2n} sao cho mỗi phần tử trong {1, &#8230;, n} xuất hiện một số lẻ lần, và mỗi phần tử trong {n+1, &#8230;, 2n} xuất hiện một số chẵn lần. Còn M - tổng số chuỗi loại 2 - là tổng số các chuỗi giống như loại 1 nhưng các phần tử trong {n+1, &#8230;, 2n} không xuất hiện lần nào.</p>
<p>Phản ứng đầu tiên của tôi là: lấy một chuỗi loại 2 và xây dựng từ đó một số X chuỗi loại 1. Nếu mỗi chuỗi loại 2 tương ứng với chính xác X chuỗi loại 1 (one-to-many mapping), và các bộ X phần tử này không giao nhau, và mỗi phần tử loại 1 đều nằm trong một bộ X chuỗi nào đó, thì ta kết luận N/M = X. Phần còn lại để cho các bạn đọc. [Cần một fact đơn giản sau: cho một tập S kích thước y, tổng số tập con của S với lực lượng chẵn là 2 lũy thừa (y-1).]</p>
<p>Bài này rất có tinh thần &#8220;<a href="http://www.procul.org/blog/?s=%C4%91%E1%BB%8Bnh+tr%E1%BB%8B+m%E1%BB%99t+%C4%91%E1%BA%A1i+l%C6%B0%E1%BB%A3ng+b%E1%BA%B1ng+hai+c%C3%A1ch">định trị một đại lượng bằng hai cách</a>&#8220;. Do tập các chuỗi loại 2 là tập con của tập các chuỗi loại 1, cũng có thể hiểu rằng ta phân hoạch tập các chuỗi loại 1 ra làm các tập con có kích thước X, sao cho mỗi tập có chính xác một chuỗi loại 2. Cách hiểu thứ hai này tuy có vẻ dễ dàng hơn trong ngữ cảnh của bài toán này, nhưng tôi không thích nó vì nó không &#8220;tổng quát&#8221; bằng. Nếu cách xây dựng như trên không thỏa mãn điều kiện &#8220;không giao nhau&#8221; (disjointness) thì ta phải xây dựng một &#8220;many-to-one map&#8221; ngược lại từ loại 1 vào loại 2 rồi tính tỉ lệ.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/08/01/d%e1%bb%81-thi-toan-qu%e1%bb%91c-t%e1%ba%bf-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;Học máy&#8221; từ góc nhìn của lý thuyết tính toán (4)</title>
		<link>http://www.procul.org/blog/2008/07/18/h%e1%bb%8dc-may-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-4/</link>
		<comments>http://www.procul.org/blog/2008/07/18/h%e1%bb%8dc-may-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-4/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 15:18:28 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Lý thuyết tính toán]]></category>

		<category><![CDATA[Trí tuệ nhân tạo]]></category>

		<category><![CDATA[Xác suất &#038; thống kê]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=891</guid>
		<description><![CDATA[Trong các bài trước ta đã đề cập đến một số vấn đề không học được trong mô hình PAC và tầm quan trọng của việc biểu diễn lớp giả thuyết như thế nào. Có lẽ bài báo đầu tiên nói về tầm quan trọng của (cách biểu diễn) lớp giả thuyết là bài của [...]]]></description>
			<content:encoded><![CDATA[<p>Trong các bài trước ta đã đề cập đến một số vấn đề không học được trong mô hình PAC và tầm quan trọng của việc biểu diễn lớp giả thuyết như thế nào. Có lẽ bài báo đầu tiên nói về tầm quan trọng của (cách biểu diễn) lớp giả thuyết là bài của <a href="http://portal.acm.org/citation.cfm?id=48014.63140&#038;coll=GUIDE&#038;dl=GUIDE&#038;CFID=37081486&#038;CFTOKEN=76645041">Pitt và Valiant</a> (JACM, 1988). Có không ít các bài báo tiếp đó đã chứng minh hardness của một số vấn đề học máy khác, ví dụ <a href="http://citeseer.ist.psu.edu/blum92training.html">Blum và Rivest</a> chứng minh rằng training một neural network với 3 nodes là NP-Hard (tương đương với phần <em>hội</em> của 3 halfspaces là không học được), <a href="http://portal.acm.org/citation.cfm?id=1032645.1033218&#038;coll=GUIDE&#038;dl=GUIDE">Alekhnovich et al.</a> ở FOCS 04 chứng minh một số các lớp hàm Bool và decision trees là không học được, <a href="http://www.eecs.harvard.edu/~vitaly/papers/F_MinDNF_MQ_08.pdf">V. Feldman</a> ở STOC 06 chứng minh rằng lớp DNF không học được trong mô hình PAC kể cả khi learner có thể &#8220;hỏi&#8221; data (chứ không phải lấy ngẫu nhiên, xem thêm <a href="http://www.eecs.harvard.edu/~vitaly/papers/PittValiant88-e.pdf">bài này nữa</a>), <a href="http://www.cs.washington.edu/homes/venkat/pubs/papers/halfspace.pdf">Guruswami và Raghavendra</a> ở FOCS 06 chứng minh rằng học halfspaces (còn gọi là perceptron, một cấu trúc cổ điển) với nhiễu là khó (ta sẽ nói về nhiễu sau), v.v. Duyệt qua STOC, FOCS,và COLT những năm gần đây sẽ thấy một vài kết quả nữa. Ngoài ra, còn có một <a href="http://groups.csail.mit.edu/cis/pubs/shafi/1998-jacm.pdf">mối liên kết giữa PAC-learning và property testing</a>, một đề tài khá &#8220;hot&#8221; trong lý thuyết tính toán.</p>
<p>Chứng minh rằng học một lớp khái niệm dùng một lớp giả thuyết nào đó là bài toán khó (NP-hard chẳng hạn) không đáng ngạc nhiên (dù không dễ dàng). Thế nếu ta không giới hạn cả lớp giả thuyết nữa thì sao? Bài toán sẽ khó hơn hay dễ hơn? Một mặt, ta cho learner thêm flexibility, bài toán có vẻ &#8220;dễ&#8221; hơn. Mặt khác, không giới hạn lớp giả thuyết thì learner output cái gì bây giờ? Ta sẽ quay lại đề tài này trong một bài sau.</p>
<p><strong>4. <em>Occam&#8217;s learning</em> và mối liên hệ giữa mô hình nhất quán và mô hình PAC, trường hợp lớp khái niệm hữu hạn</strong></p>
<p><em>Tóm tắt lại mô hình PAC</em>: learner muốn học khái niệm <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> trong lớp khái niệm <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle> bằng lớp giả thuyết <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle>, nghĩa là learner phải đưa ra một giả thuyết <img src='/blog/latexrender/pictures/629676f72a1003d7418a559589bf92df.gif' title='h\in \mathcal H' alt='h\in \mathcal H' align=absmiddle> bằng cách lấy <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> mẫu theo phân bố <img src='/blog/latexrender/pictures/c011a2fa6d262198e0a38d12bc77a31e.gif' title='\mathcal D' alt='\mathcal D' align=absmiddle> trên miền <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle> sao cho <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> rất gần <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> với xác suất rất cao.</p>
<p>Trong đề mục này, ta chỉ xét các lớp giả thuyết hữu hạn, <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> có thể giống hoặc khác <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle>. Một kết quả cổ điển của Valiant nói rằng: nếu learner đưa ra một giả thuyết nhất quán với &#8220;khá nhiều&#8221; các mẫu lấy độc lập thì đó chính là PAC learner! (Có thể không phải là efficient PAC learner, nhưng chắc chắn là PAC learner.) Cụ thể hơn:</p>
<blockquote><p>
<strong>Định lý Valiant.</strong> Nếu learner có thể đưa ra một giả thuyết <img src='/blog/latexrender/pictures/6f6703e465601b1ce8f2ecfcbcf15a15.gif' title='h \in \mathcal H' alt='h \in \mathcal H' align=absmiddle> nhất quán với <img src='/blog/latexrender/pictures/4d0e25e89fa8cfdfcce08e863dbd664d.gif' title='m \geq \frac 1 \epsilon \log\left( \frac{|\mathcal H|}{\delta} \right)' alt='m \geq \frac 1 \epsilon \log\left( \frac{|\mathcal H|}{\delta} \right)' align=absmiddle> mẫu (i.d.d.) thì giả thuyết đó sẽ thỏa điều kiện <img src='/blog/latexrender/pictures/c42b1986c8a0b32ed30e3ec42c17ac4c.gif' title=' \text{Prob}\left[ \text{err}_{\mathcal D}(h) \leq \epsilon\right] \geq 1 - \delta' alt=' \text{Prob}\left[ \text{err}_{\mathcal D}(h) \leq \epsilon\right] \geq 1 - \delta' align=absmiddle>, nghĩa là learner là một PAC-learner.
</p></blockquote>
<p><em>Chứng minh.</em> Gọi một giả thuyết gọi là <em>giả thuyết tồi</em> nếu<br />
<center><img src='/blog/latexrender/pictures/a69a12a36d75764d0e157829eae347f6.gif' title='\text{err}_{\mathcal D}(h) = \text{Prob}_{x \in \mathcal D}[h(\mathbf x) \neq c(\mathbf x)] &gt; \epsilon' alt='\text{err}_{\mathcal D}(h) = \text{Prob}_{x \in \mathcal D}[h(\mathbf x) \neq c(\mathbf x)] &gt; \epsilon' align=absmiddle></center><br />
Như vậy, xác suất mà một giả thuyết tồi nhất quán với <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> ở tất cả <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> mẫu độc lập nhỏ hơn <img src='/blog/latexrender/pictures/f58440c061896a9b4c299e01e2e95272.gif' title='(1-\epsilon)^m' alt='(1-\epsilon)^m' align=absmiddle>. Do đó, xác suất mà giả thuyết learner đưa ra là giả thuyết tồi &le; xác suất tồn tại một giả thuyết tồi trong <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> nhất quán với <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> &le; <img src='/blog/latexrender/pictures/7fcd4a38f4f290ef2119cb22077677ec.gif' title='|\mathcal H|(1-\epsilon)^m' alt='|\mathcal H|(1-\epsilon)^m' align=absmiddle>. Ép vế cuối cùng nhỏ hơn hoặc bằng <img src='/blog/latexrender/pictures/77a3b715842b45e440a5bee15357ad29.gif' title='\delta' alt='\delta' align=absmiddle> là xong!
<div style="text-align: right;">QED.</div>
<p>Định lý này dẫn đến một kết quả khác thường được xem như một cách giải thích về mặt toán học <a href="http://en.wikipedia.org/wiki/Occam's_Razor">nguyên tắc Occam&#8217;s Razor</a>. Đại khái, nguyên tắc này nói rằng khi có một số giả thuyết tốt như nhau cạnh tranh trong việc giải thích cái gì đó thì nên chọn giả thuyết &#8220;đơn giản&#8221; nhất. Ví dụ: nếu cơ học cổ điển đã đủ để giải thích chuyển động của các hành tinh trong hệ mặt trời thì ta không cần thòng thêm một câu &#8220;<em>Thượng đế tạo ra hệ mặt trời</em>&#8221; nữa. (Như Laplace nói: &#8220;<a href="http://www-formal.stanford.edu/jmc/religion.html">tôi không cần giả thuyết đó</a>&#8220;.) Nếu ta chọn &#8220;đơn giản&#8221; = &#8220;ngắn gọn&#8221; thì từ định lý Valiant có thể chứng minh được rằng nếu learner đưa ra một hypothesis &#8220;đủ ngắn&#8221; và nhất quán với data thì learner đó là PAC-learner. (&#8221;Đơn giản&#8221; = &#8220;ngắn gọn&#8221; là cái nhìn của lý thuyết thông tin!)</p>
<p>Từ định lý Valiant, có thể thiết kế một số <em>efficient PAC-learner</em> khá dễ dàng. Ví dụ: ta đã thiết kế một PAC learner để học <em>Boolean conjunctions</em> trong đề mục 3.3. Tổng số giả thuyết dạng Boolean conjuction nhiều nhất là <img src='/blog/latexrender/pictures/ed11dc9af96ff98159e9c06973c09457.gif' title='3^n' alt='3^n' align=absmiddle>. Dùng định lý Valiant, ta chỉ cần dùng thuật toán trong đề mục 2.1 và tìm một giả thuyết nhất quán với <img src='/blog/latexrender/pictures/aee131aa2d6eb5ede9abfb600e6b1d22.gif' title='\frac 1 \epsilon \log \left( \frac{3^n}{\delta} \right)' alt='\frac 1 \epsilon \log \left( \frac{3^n}{\delta} \right)' align=absmiddle> mẫu là xong. Đây hiển nhiên vẫn là thuật toán thời gian đa thức. Tổng số mẫu ta cần thậm chí còn ít hơn tổng số mẫu cần trong thuật toán đã đưa trong đề mục 3.3.</p>
<p>Nếu ta giữ tổng số mẫu <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> cố định, có thể đảo định lý Valiant lại và viết<br />
<center><img src='/blog/latexrender/pictures/8f3bcb40cff60d0670cbddb8f9ea2b7a.gif' title='\text{Prob}\left[ \text{err}_{\mathcal D}(h) \leq \log\left(|\mathcal H|/\delta\right)/m \right] \geq 1 - \delta' alt='\text{Prob}\left[ \text{err}_{\mathcal D}(h) \leq \log\left(|\mathcal H|/\delta\right)/m \right] \geq 1 - \delta' align=absmiddle></center><br />
Có thể hiểu kết quả này nôm na là: ta càng biết nhiều về lớp giả thuyết thì càng có ít giả thuyết (<img src='/blog/latexrender/pictures/a9c52f879d01b26d613106c23a9cb16a.gif' title='|\mathcal H|' alt='|\mathcal H|' align=absmiddle> giảm) và do đó lỗi của  giả thuyết đưa ra càng bé, hoặc càng có nhiều data (<img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> tăng) thì cũng thế.</p>
<p><strong>5. <em>VC-dimension</em> và mối liên hệ giữa mô hình nhất quán và mô hình PAC, trường hợp lớp khái niệm vô hạn</strong></p>
<p>Định lý Valiant xem ra có vẻ hữu dụng. Thế nhưng ta chẳng dùng nó được khi <img src='/blog/latexrender/pictures/937fbe1c094fc8785e3767249c1b9395.gif' title='\log(|\mathcal H)|' alt='\log(|\mathcal H)|' align=absmiddle> lớn ơn một hàm đa thức, thậm chí vô hạn. <em>Ví dụ 1</em>: nếu ta muốn học lớp <em>DNF</em> dùng lớp <em>DNF</em> thì <img src='/blog/latexrender/pictures/69f2008d81878e122ed6bd1cadc15411.gif' title='|\mathcal H| = 2^{2^n}' alt='|\mathcal H| = 2^{2^n}' align=absmiddle>. <em>Ví dụ 2</em>: tổng số các <em>axis-parallel rectangles</em> là vô hạn, vậy mà vẫn tồn tại một efficient PAC-learner cho bài axis-parallel rectangles. </p>
<p>May mà ta vẫn có thể chứng minh được một định lý tương tự định lý Valiant cho trường hợp <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là vô hạn, nhưng ta sẽ phải giới thiệu một khái niệm mới cực kỳ thú vị, mang tính tổ hợp, gọi là <a href="http://www.svms.org/vc-dimension/">VC-dimension</a> của một lớp các hàm số. VC-dimension, viết tắt của Vapnik-Chervonenkis dimension, được Vapnik và Chervonenkis giới thiệu trong bài báo kinh điển của họ hồi năm 1971:</p>
<blockquote><p>V. Vapnik and A. Chervonenkis. &#8220;On the uniform convergence of relative frequencies of events to their probabilities.&#8221; Theory of Probability and its Applications, 16(2):264&#8211;280, 1971.</p></blockquote>
<p><a href="http://people.csail.mit.edu/madhu/papers/learning.ps">Bài này</a> của Hosking, Petnault và Sudan viết tổng quan về quan hệ giữa thống kê và data mining giới thiệu khá tốt trực quan của VC-dimension. <a href="http://portal.acm.org/citation.cfm?id=12158&#038;dl=GUIDE,">Blumer et al.</a> ở STOC 89 là bài báo đầu tiên giới thiệu VC-dimension vào ngành COLT; các kết quả của họ là nội dung chính của đề mục này của chúng ta.</p>
<p><strong>5.1. Giới thiệu trực quan về VC-dimension</strong></p>
<p>VC-dimension là một <em>số đo</em> &#8220;độ phức tạp&#8221; hoặc &#8220;dung tích&#8221; của một lớp các hàm số. Trong ngữ cảnh của chúng ta, lớp các hàm số chính là lớp giả thuyết. VC-dimension của một lớp giả thuyết là số <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> lớn nhất sao cho tồn tại <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> mẫu mà với bất kỳ cách gán nhãn nào cho các mẫu này ta cũng có thể tìm được một giả thuyết nhất quán với chúng. Dĩ nhiên, nếu không tồn tại số <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> lớn nhất này thì VC-dimension của lớp giả thuyết là vô hạn. VD-dimension cũng được định nghĩa cho cả các lớp hàm biến thực chứ không chỉ các lớp hàm trị 0, 1 như trong bài toán classification ta đang xét.</p>
<p>Trong ngữ cảnh của statistical learning theory thì VC-dimension là số đo &#8220;dung tích&#8221; của một tập hợp bất kỳ các statistical models. <a href="http://people.csail.mit.edu/madhu/papers/learning.ps">Bài này</a> có một đoạn nói rất tốt nên tôi dịch lại ra đây:</p>
<blockquote><p>Do khái niệm này được định nghĩa dựa trên tổng số mẫu và tính nhất quán của các models trên các mẫu, nó có thể áp dụng cho hầu như  tất cả mọi loại models: tuyến tính, phi tuyến, nonparametric và tổ hợp của chúng, bao gồm mạng neural, classification &#038; regression trees, classification &#038; regression rules, radial basis functions, Bayesian networks, và hầu hết tất cả các họ models có thể tưởng tượng ra được. Thêm nữa, VC-dimension cũng là con số đánh giá rất tốt khả năng &#8220;khớp&#8221; dữ liệu của một lớp models, tốt hơn số tham số của models. Có các ví dụ models với 1 tham số mà có VC-dimension vô hạn, do đó khớp bất kỳ tập mẫu nào. Cũng có các models với ti tỉ tham số nhưng chỉ có VC-dimension nhỏ &#8230; Với một số họ models nhất định thì VC-dimension bằng tổng số tham số, ví dụ như các linear regression/discriminant models.
</p></blockquote>
<p>Vapnik và Chervonenkis dùng VC-dimension trong các bất đẳng thức chặn lỗi cho một lớp models cho trước. Cũng như trong PAC-learning, các chặn của họ không phụ thuộc vào phân bố của dữ liệu, phân bố nào cũng được. Bài báo của Blumer et al. áp dụng ý tưởng và vài kỹ thuật của họ vào PAC-learning.</p>
<p><strong>5.2. Toán học của VC-dimension và vài thuộc tính</strong></p>
<p>Lớp khái niệm <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là một tập các hàm số <img src='/blog/latexrender/pictures/3b3ae56ff61ef86e2106b5a12d4ae722.gif' title='h: \Omega \to \{0,1\}' alt='h: \Omega \to \{0,1\}' align=absmiddle>. Mỗi hàm số có thể xem là một tập con của <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle>: tập các phần tử của <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle> được hàm số gán nhãn bằng <img src='/blog/latexrender/pictures/c4ca4238a0b923820dcc509a6f75849b.gif' title='1' alt='1' align=absmiddle>. Với một tập mẫu <img src='/blog/latexrender/pictures/e79fb63decb92aaa0af1305c91ba8a5b.gif' title='S \subseteq \Omega' alt='S \subseteq \Omega' align=absmiddle> bất kỳ, định nghĩa <img src='/blog/latexrender/pictures/9bffceb2978c9208350c1fae1da2b030.gif' title='\Pi_{\mathcal H}(S) = \{ h \cap S : h\in\mathcal H\}' alt='\Pi_{\mathcal H}(S) = \{ h \cap S : h\in\mathcal H\}' align=absmiddle>. Như vậy <img src='/blog/latexrender/pictures/bcf65ede644b1332dbab66a6ddaa848a.gif' title='\Pi_{\mathcal H}(S)' alt='\Pi_{\mathcal H}(S)' align=absmiddle> là tập tất cả các tập con <img src='/blog/latexrender/pictures/7c921176f3092115b48f9796eaf15ce9.gif' title='X \subseteq S' alt='X \subseteq S' align=absmiddle> sao cho tồn tại một giả thuyết <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> &#8220;cắt&#8221; <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle> ra thành <img src='/blog/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.gif' title='X' alt='X' align=absmiddle> (nhãn = 1) và <img src='/blog/latexrender/pictures/e8506ef6bf2b9baa6a79c0fecee9c952.gif' title='S-X' alt='S-X' align=absmiddle> (nhãn = 0). </p>
<p>Tập mẫu <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle> bị <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> <em>băm nát như tương Tàu</em> bởi <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> nếu <img src='/blog/latexrender/pictures/bcf65ede644b1332dbab66a6ddaa848a.gif' title='\Pi_{\mathcal H}(S)' alt='\Pi_{\mathcal H}(S)' align=absmiddle> là tập tất cả các tập con của <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle>. Nói cách khác, <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle> bị băm nát như tương Tàu nếu, cho một tập con <img src='/blog/latexrender/pictures/7c921176f3092115b48f9796eaf15ce9.gif' title='X \subseteq S' alt='X \subseteq S' align=absmiddle> bất kỳ ta luôn tìm được một giả thuyết <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> &#8220;cắt&#8221; <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle> ra thành <img src='/blog/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.gif' title='X' alt='X' align=absmiddle> (nhãn = 1) và <img src='/blog/latexrender/pictures/e8506ef6bf2b9baa6a79c0fecee9c952.gif' title='S-X' alt='S-X' align=absmiddle> (nhãn = 0). </p>
<p>VC-dimension của <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle>, ký hiệu là <img src='/blog/latexrender/pictures/b695541797451eff4ff56a49bcdbd995.gif' title='\text{VC}(\mathcal H)' alt='\text{VC}(\mathcal H)' align=absmiddle> là kích thước lớn nhất của một tập mẫu bị <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> băm nát. (Bỏ &#8220;như  tương Tàu&#8221; đi cho đỡ mỏi tay.) Để hiểu rõ, bạn hãy tự giải thích một cách trực quan các khẳng định sau đây:</p>
<ul>
<li> <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các nửa đường thẳng mở bên trái trên trục thực, <img src='/blog/latexrender/pictures/6b70a58254b2403eed144052569b2301.gif' title='\text{VC}(\mathcal H)  = 1' alt='\text{VC}(\mathcal H)  = 1' align=absmiddle>
<li> <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các đoạn đóng trên trục thực, <img src='/blog/latexrender/pictures/9065c8393dc166f65f66630a4a6475bb.gif' title='\text{VC}(\mathcal H)  = 2' alt='\text{VC}(\mathcal H)  = 2' align=absmiddle>
<li> <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các tập nhiều nhất <img src='/blog/latexrender/pictures/8ce4b16b22b58894aa86c421e8759df3.gif' title='k' alt='k' align=absmiddle> đoạn đóng trên trục thực, <img src='/blog/latexrender/pictures/c27f8b1f7bbf83727b0b5082b63f02a1.gif' title='\text{VC}(\mathcal H)  = 2k' alt='\text{VC}(\mathcal H)  = 2k' align=absmiddle>
<li> <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các nửa mặt phẳng, <img src='/blog/latexrender/pictures/97602713d3db66cbb85cc9bb2ace7d7d.gif' title='\text{VC}(\mathcal H)  = 3' alt='\text{VC}(\mathcal H)  = 3' align=absmiddle>
<li> <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các nửa không gian (half-spaces) của <img src='/blog/latexrender/pictures/4a27320a9aa26bd775f76c29f1ee7922.gif' title='\mathbb R^d' alt='\mathbb R^d' align=absmiddle>, <img src='/blog/latexrender/pictures/13b6bd1c03498204ee53752fec087ab5.gif' title='\text{VC}(\mathcal H)  = d+1' alt='\text{VC}(\mathcal H)  = d+1' align=absmiddle>
<li> <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các hình cầu của <img src='/blog/latexrender/pictures/4a27320a9aa26bd775f76c29f1ee7922.gif' title='\mathbb R^d' alt='\mathbb R^d' align=absmiddle>, <img src='/blog/latexrender/pictures/13b6bd1c03498204ee53752fec087ab5.gif' title='\text{VC}(\mathcal H)  = d+1' alt='\text{VC}(\mathcal H)  = d+1' align=absmiddle>
<li> <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các axis-parallel rectangles, <img src='/blog/latexrender/pictures/06388997516985df3c257236ff17bd0f.gif' title='\text{VC}(\mathcal H)  = 4' alt='\text{VC}(\mathcal H)  = 4' align=absmiddle>
<li> <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các đa giác lồi d đỉnh trên mặt phẳng, <img src='/blog/latexrender/pictures/688df7f1229e9396f6792bae0d3060be.gif' title='\text{VC}(\mathcal H)  = 2d+1' alt='\text{VC}(\mathcal H)  = 2d+1' align=absmiddle>
<li>  <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các tổ hợp logic của nhiều nhất <img src='/blog/latexrender/pictures/8ce4b16b22b58894aa86c421e8759df3.gif' title='k' alt='k' align=absmiddle> khái niệm trong một lớp khái niệm <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle> cho trước, nếu <img src='/blog/latexrender/pictures/0d0fb7ecb79b2ca282df09ea6e0b38fa.gif' title='\text{VC}(\mathcal C)' alt='\text{VC}(\mathcal C)' align=absmiddle> hữu hạn thì <img src='/blog/latexrender/pictures/b695541797451eff4ff56a49bcdbd995.gif' title='\text{VC}(\mathcal H)' alt='\text{VC}(\mathcal H)' align=absmiddle> hữu hạn.
<li> <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là tập các tập các đoạn đóng trên thục thực, hoặc tập các tập mở (theo nghĩa hình topo), hoặc tập các Borel sets, thì <img src='/blog/latexrender/pictures/d9f19fd714189de6a5ad1868d7e547b0.gif' title='\text{VC}(\mathcal H)  = \infty' alt='\text{VC}(\mathcal H)  = \infty' align=absmiddle>
</ul>
<blockquote><p><strong>Bổ đề</strong> Định nghĩa <img src='/blog/latexrender/pictures/d297618283358c5e58d2218c2e61a5df.gif' title='\Pi_{\mathcal H}(m) = \max\left( |\Pi_{\mathcal H}(S)| : |S| = m \right)' alt='\Pi_{\mathcal H}(m) = \max\left( |\Pi_{\mathcal H}(S)| : |S| = m \right)' align=absmiddle>. Nếu <img src='/blog/latexrender/pictures/2843cc18e009c20e94dc8e0dfd02ee1a.gif' title='\text{VC}(\mathcal H) = d' alt='\text{VC}(\mathcal H) = d' align=absmiddle> thì<br />
<center><img src='/blog/latexrender/pictures/38efd60247229767106a217ef7ece872.gif' title='\Pi_{\mathcal H}(m) \leq \Phi_d(m) = \sum_{i=0}^d \binom{m}{d} \leq \left( \frac{em}{d} \right)^d = O(m^d)' alt='\Pi_{\mathcal H}(m) \leq \Phi_d(m) = \sum_{i=0}^d \binom{m}{d} \leq \left( \frac{em}{d} \right)^d = O(m^d)' align=absmiddle></center>
</p></blockquote>
<p>Như vậy, bổ đề này cho ta biết nếu VC-dimension của lớp hypothesis là hữu hạn thì <img src='/blog/latexrender/pictures/b8aec6e894c875016ac84ce740f47d6e.gif' title='|\Pi_{\mathcal H}(m)|' alt='|\Pi_{\mathcal H}(m)|' align=absmiddle> sẽ bị chặn trên bởi một đa thức khi <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> đủ lớn. Kết quả này khá phản trực quan. Chú ý rằng, nếu VC-dimension là vô hạn thì ta luôn có <img src='/blog/latexrender/pictures/10459aa168f973772d986a0f6ab0baaa.gif' title='|\Pi_{\mathcal H}(m)| = 2^m' alt='|\Pi_{\mathcal H}(m)| = 2^m' align=absmiddle>.<br />
<em>Chứng minh.</em> Quy nạp theo <img src='/blog/latexrender/pictures/b0234f3f3f410f1fa2adff0c620b5787.gif' title='m+d' alt='m+d' align=absmiddle>. Khi <img src='/blog/latexrender/pictures/e6753e61990bc639ae1869683cb421b7.gif' title='m=0' alt='m=0' align=absmiddle> thì dĩ nhiên bổ đề đúng. Khi <img src='/blog/latexrender/pictures/13285769c8cd293bfd541406e0621d87.gif' title='d=0' alt='d=0' align=absmiddle> thì lớp hàm số <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> gán tất cả <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle> cùng một giá trị (0 hoặc 1), do đó <img src='/blog/latexrender/pictures/32d3770d7cc5782a893aa8e6375ee7f0.gif' title='|\Pi_{\mathcal H}(m)| = 1 = \Phi_0(m)' alt='|\Pi_{\mathcal H}(m)| = 1 = \Phi_0(m)' align=absmiddle>. </p>
<p>Xét trường hợp tổng quát <img src='/blog/latexrender/pictures/28804502475d2a6d57f1d88f460225ce.gif' title='m,d&gt;0' alt='m,d&gt;0' align=absmiddle>, một tập mẫu <img src='/blog/latexrender/pictures/e79fb63decb92aaa0af1305c91ba8a5b.gif' title='S \subseteq \Omega' alt='S \subseteq \Omega' align=absmiddle> bất kỳ gồm <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> mẫu, và một phần tử <img src='/blog/latexrender/pictures/a15fda5331218e41f76a749880c5c2f8.gif' title='s\in S' alt='s\in S' align=absmiddle> bất kỳ. Chú ý rằng <img src='/blog/latexrender/pictures/bcf65ede644b1332dbab66a6ddaa848a.gif' title='\Pi_{\mathcal H}(S)' alt='\Pi_{\mathcal H}(S)' align=absmiddle> chẳng qua là một bộ các tập con của <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle>. Số thành viên trong <img src='/blog/latexrender/pictures/bcf65ede644b1332dbab66a6ddaa848a.gif' title='\Pi_{\mathcal H}(S)' alt='\Pi_{\mathcal H}(S)' align=absmiddle> có thể tính bằng tổng của hai số hạng: một  là tổng số các các tập con <img src='/blog/latexrender/pictures/a112c3c78772bde3bed53651b4531c14.gif' title='h \in  \Pi_{\mathcal H}(S)' alt='h \in  \Pi_{\mathcal H}(S)' align=absmiddle> thỏa <img src='/blog/latexrender/pictures/f94c4705ec1bd7c1a4925faeadd6d5cb.gif' title='h \subseteq S-\{s\}' alt='h \subseteq S-\{s\}' align=absmiddle>, hai  là các tổng số các tập con <img src='/blog/latexrender/pictures/a112c3c78772bde3bed53651b4531c14.gif' title='h \in  \Pi_{\mathcal H}(S)' alt='h \in  \Pi_{\mathcal H}(S)' align=absmiddle> sao cho <img src='/blog/latexrender/pictures/41b932e641a08c294e05702d92952526.gif' title='h \subseteq S-\{s\}, h \cup \{s\} \in \Pi_{\mathcal H}(S)' alt='h \subseteq S-\{s\}, h \cup \{s\} \in \Pi_{\mathcal H}(S)' align=absmiddle>. </p>
<p>Dùng ý tưởng trên, định nghĩa<br />
<center><img src='/blog/latexrender/pictures/ab040954c814093d55a5edf3800a5cdb.gif' title='\mathcal H&#039; = \{ h \in \Pi_{\mathcal H}(S) : s \notin h, h \cup \{s\} \in \Pi_{\mathcal H}(S) \}' alt='\mathcal H&#039; = \{ h \in \Pi_{\mathcal H}(S) : s \notin h, h \cup \{s\} \in \Pi_{\mathcal H}(S) \}' align=absmiddle></center><br />
Ta có <img src='/blog/latexrender/pictures/e003a984c80615cbc4fd07dfe8c600c6.gif' title='|\Pi_{\mathcal H}(S)| = |\Pi_{\mathcal H}(S-\{s\})| + |\mathcal H&#039;| = |\Pi_{\mathcal H}(S-\{s\})| + |\Pi_{\mathcal H&#039;}(S)|' alt='|\Pi_{\mathcal H}(S)| = |\Pi_{\mathcal H}(S-\{s\})| + |\mathcal H&#039;| = |\Pi_{\mathcal H}(S-\{s\})| + |\Pi_{\mathcal H&#039;}(S)|' align=absmiddle>. Dễ thấy rằng <img src='/blog/latexrender/pictures/26e70f57dc11412794d464ba6ff3be17.gif' title='\text{VC}(\mathcal H&#039;) \leq d-1' alt='\text{VC}(\mathcal H&#039;) \leq d-1' align=absmiddle> vì nếu <img src='/blog/latexrender/pictures/38d99d229d0ad2e2d1a6638272676e12.gif' title='\mathcal H&#039;' alt='\mathcal H&#039;' align=absmiddle> băm nát một tập <img src='/blog/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.gif' title='X' alt='X' align=absmiddle> nào đó thì <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> sẽ băm nát <img src='/blog/latexrender/pictures/6716a01890e32e9a759c5287fc4a68d4.gif' title='X \cup \{s\}' alt='X \cup \{s\}' align=absmiddle>. Áp dụng giả thuyết quy nạp, ta kết luận:<br />
<center><img src='/blog/latexrender/pictures/924f249762493e25ebd3dd97265e58f4.gif' title='|\Pi_{\mathcal H}(S)| \leq \Phi_d(m-1) + \Phi_{d-1}(m) = \Phi_d(m)' alt='|\Pi_{\mathcal H}(S)| \leq \Phi_d(m-1) + \Phi_{d-1}(m) = \Phi_d(m)' align=absmiddle></center></p>
<div style="text-align: right;">QED.</div>
<p><strong>5.3. Định lý Valiant cho các lớp khái niệm vô hạn (nhưng có VC-dimension hữu hạn)</strong></p>
<blockquote><p>
<strong>Định lý.</strong> Tồn tại một hằng số <img src='/blog/latexrender/pictures/5dc6391d33bd8fb416f9871912312705.gif' title='c_0&gt;0' alt='c_0&gt;0' align=absmiddle> sao cho: nếu learner có thể đưa ra một giả thuyết <img src='/blog/latexrender/pictures/6f6703e465601b1ce8f2ecfcbcf15a15.gif' title='h \in \mathcal H' alt='h \in \mathcal H' align=absmiddle> nhất quán với <img src='/blog/latexrender/pictures/eb0e6ec61fb4dcd7ccdd8a762d7f43ca.gif' title='m \geq \frac{c_0}{\epsilon}\left(\log\left(\frac 1 \delta\right) + \text{VC}(\mathcal H)\log\left(\frac 1 \epsilon\right) \right)' alt='m \geq \frac{c_0}{\epsilon}\left(\log\left(\frac 1 \delta\right) + \text{VC}(\mathcal H)\log\left(\frac 1 \epsilon\right) \right)' align=absmiddle> mẫu (i.d.d.) thì learner là một PAC-learner.
</p></blockquote>
<p><em>Chứng minh.</em> Đây là một định lý tuyệt vời về mặt kỹ thuật. Nó khẳng định điều tôi đã biết: cùng một <a href="http://www.berkeleymusic.com/Ramirezguitars.html">cây Ramirez</a> trong tay John Williams thì khác xa trong tay NQH. </p>
<p>Giống như  trong định lý Valiant trường hợp lớp giả thuyết hữu hạn, ta chỉ cần chặn trên xác suất sự  kiện &#8220;tồi&#8221; sau đây xảy ra:</p>
<p><img src='/blog/latexrender/pictures/9d5ed678fe57bcca610140957afab571.gif' title='B' alt='B' align=absmiddle>: sự kiện tồn tại một giả thuyết tồi <img src='/blog/latexrender/pictures/6f6703e465601b1ce8f2ecfcbcf15a15.gif' title='h \in \mathcal H' alt='h \in \mathcal H' align=absmiddle> nhất quán với <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> (Nhớ rằng giả thuyết tồi là giả thuyết có lỗi <img src='/blog/latexrender/pictures/218d046296e67fa3cf833ecd28b74569.gif' title='&gt; \epsilon' alt='&gt; \epsilon' align=absmiddle>.)</p>
<p>Thay vì chặn xác suất <img src='/blog/latexrender/pictures/9d5ed678fe57bcca610140957afab571.gif' title='B' alt='B' align=absmiddle> xảy ra, ta sẽ chặn nó bằng xác suất một sự kiện khác dễ &#8220;nắm bắt&#8221; hơn. Với một tập mẫu <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle> bất kỳ, gọi <img src='/blog/latexrender/pictures/ac84a4687875d8caeab47f1c90578690.gif' title='M(h,S)' alt='M(h,S)' align=absmiddle> là tổng điểm trong <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle> mà <img src='/blog/latexrender/pictures/4a0708e1d89352f545fc506012507878.gif' title='h \neq c' alt='h \neq c' align=absmiddle>. Bây giờ, gọi <img src='/blog/latexrender/pictures/59ffb5e3c8baa475269ff0ad1683210b.gif' title='S = \mathbf x_1, \dots, \mathbf x_m' alt='S = \mathbf x_1, \dots, \mathbf x_m' align=absmiddle> là training set. Giả sử ta lấy thêm <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> mẫu nữa <img src='/blog/latexrender/pictures/ffb05647d8a8b840283e4757ab4bf0b8.gif' title='S&#039; = \mathbf x&#039;_1, \dots, \mathbf x&#039;_m' alt='S&#039; = \mathbf x&#039;_1, \dots, \mathbf x&#039;_m' align=absmiddle> (đây chỉ là công cụ phân tích, không phải ta lấy thêm mẫu thật sự  khi chạy thuật toán). Định nghĩa một sự kiện thứ  hai:</p>
<p><img src='/blog/latexrender/pictures/0d61f8370cad1d412f80b84d143e1257.gif' title='C' alt='C' align=absmiddle>: sự kiện tồn tại một giả thuyết <img src='/blog/latexrender/pictures/6f6703e465601b1ce8f2ecfcbcf15a15.gif' title='h \in \mathcal H' alt='h \in \mathcal H' align=absmiddle> sao cho <img src='/blog/latexrender/pictures/6c53527b3da852afc3a01882670319fb.gif' title='M(h,S)=0' alt='M(h,S)=0' align=absmiddle> (nghĩa là <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> vẫn nhất quán với <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> trên <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle>) nhưng <img src='/blog/latexrender/pictures/0f4d627bcbd97e4bfdd71f002e570d9d.gif' title='M(h,S&#039;) &gt; m\epsilon/2' alt='M(h,S&#039;) &gt; m\epsilon/2' align=absmiddle>.</p>
<p>Dễ chứng minh rằng, nếu <img src='/blog/latexrender/pictures/79b24571845c6e584584ce65b9d8e5b9.gif' title='m&gt;8/\epsilon' alt='m&gt;8/\epsilon' align=absmiddle> thì <img src='/blog/latexrender/pictures/75ee5ebd22a9d8a5094ca86b4e6ec691.gif' title='\text{Prob}[C | B] \geq 1/2' alt='\text{Prob}[C | B] \geq 1/2' align=absmiddle> dùng bất đẳng thức Markov, và do đó <img src='/blog/latexrender/pictures/06001c08d29a0ed66abf60ba8d45976b.gif' title='\text{Prob}[B] \leq 2\text{Prob}[C]' alt='\text{Prob}[B] \leq 2\text{Prob}[C]' align=absmiddle>.</p>
<p>Giả sử ta thảy <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> đồng tiền xấp ngửa với xác suất 1/2 và tráo <img src='/blog/latexrender/pictures/d27a3dafd0596db5932610d07ae42af3.gif' title='\mathbf x_i' alt='\mathbf x_i' align=absmiddle> với <img src='/blog/latexrender/pictures/9c38cb2536fe32ebc4c5ce901805d61e.gif' title='\mathbf x&#039;_i' alt='\mathbf x&#039;_i' align=absmiddle> nếu đồng tiền thứ <img src='/blog/latexrender/pictures/865c0c0b4ab0e063e5caa3387c1a8741.gif' title='i' alt='i' align=absmiddle> là ngửa. Gọi hai tập mẫu kết quả là <img src='/blog/latexrender/pictures/b9ece18c950afbfa6b0fdbfa4ff731d3.gif' title='T' alt='T' align=absmiddle> và <img src='/blog/latexrender/pictures/6f3357ae1d6de5c7df30cf8503177f87.gif' title='T&#039;' alt='T&#039;' align=absmiddle>. Định nghĩa một sự kiện thứ ba:</p>
<p><img src='/blog/latexrender/pictures/f623e75af30e62bbd73d6df5b50bb7b5.gif' title='D' alt='D' align=absmiddle>: sự kiện tồn tại một giả thuyết <img src='/blog/latexrender/pictures/6f6703e465601b1ce8f2ecfcbcf15a15.gif' title='h \in \mathcal H' alt='h \in \mathcal H' align=absmiddle> sao cho <img src='/blog/latexrender/pictures/0364e9abfdfaa2b4cc8d1569e6b4f81d.gif' title='M(h,T)=0' alt='M(h,T)=0' align=absmiddle> (nghĩa là <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> vẫn nhất quán với <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> trên <img src='/blog/latexrender/pictures/b9ece18c950afbfa6b0fdbfa4ff731d3.gif' title='T' alt='T' align=absmiddle>) nhưng <img src='/blog/latexrender/pictures/68de0836efa275eafd007225b40ac65b.gif' title='M(h,T&#039;) &gt; m\epsilon/2' alt='M(h,T&#039;) &gt; m\epsilon/2' align=absmiddle>.</p>
<p>Do tính i.i.d. của <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle> và <img src='/blog/latexrender/pictures/00226656ea0692401f9834fe6994da11.gif' title='S&#039;' alt='S&#039;' align=absmiddle>, dễ thấy rằng <img src='/blog/latexrender/pictures/0d61f8370cad1d412f80b84d143e1257.gif' title='C' alt='C' align=absmiddle> và <img src='/blog/latexrender/pictures/f623e75af30e62bbd73d6df5b50bb7b5.gif' title='D' alt='D' align=absmiddle> có xác suất bằng nhau. Cố định <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle> và <img src='/blog/latexrender/pictures/00226656ea0692401f9834fe6994da11.gif' title='S&#039;' alt='S&#039;' align=absmiddle> và xét một giả thuyết <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> bất kỳ. Để cho <img src='/blog/latexrender/pictures/0364e9abfdfaa2b4cc8d1569e6b4f81d.gif' title='M(h,T)=0' alt='M(h,T)=0' align=absmiddle> và <img src='/blog/latexrender/pictures/39eeb3a84df1d258ac86b154ef7ebe10.gif' title='M(h,T&#039;)&gt;m\epsilon/2' alt='M(h,T&#039;)&gt;m\epsilon/2' align=absmiddle> thì phải có ít nhất <img src='/blog/latexrender/pictures/ebec5f90c6c048e2fe83217b3471c319.gif' title='r&gt;m\epsilon/2' alt='r&gt;m\epsilon/2' align=absmiddle> chỉ số <img src='/blog/latexrender/pictures/865c0c0b4ab0e063e5caa3387c1a8741.gif' title='i' alt='i' align=absmiddle> sao cho <img src='/blog/latexrender/pictures/4c520f1d1c125e245da2d2aacd1247cb.gif' title='h(\mathbf x_i) \neq h(\mathbf x&#039;_i)' alt='h(\mathbf x_i) \neq h(\mathbf x&#039;_i)' align=absmiddle>, và ít nhất <img src='/blog/latexrender/pictures/4b43b0aee35624cd95b910189b3dc231.gif' title='r' alt='r' align=absmiddle> đồng tiền ra xấp/ngửa sao cho phần đúng nhảy vào <img src='/blog/latexrender/pictures/b9ece18c950afbfa6b0fdbfa4ff731d3.gif' title='T' alt='T' align=absmiddle> và phần sai nhảy vào <img src='/blog/latexrender/pictures/6f3357ae1d6de5c7df30cf8503177f87.gif' title='T&#039;' alt='T&#039;' align=absmiddle>. Do đó<br />
<center><img src='/blog/latexrender/pictures/18f9ec478b1cbb5f70bf152e9f44390b.gif' title='\text{Prob}[M(h,T)=0, M(h,T&#039;)&gt;m\epsilon/2 \ | \ S, S&#039;] \leq 2^{-r} \leq 2^{-m\epsilon/2}' alt='\text{Prob}[M(h,T)=0, M(h,T&#039;)&gt;m\epsilon/2 \ | \ S, S&#039;] \leq 2^{-r} \leq 2^{-m\epsilon/2}' align=absmiddle></center><br />
Thay <img src='/blog/latexrender/pictures/40507b0bae8ea7031ac3baa90713972b.gif' title='\text{Prob}[D]' alt='\text{Prob}[D]' align=absmiddle> bằng<br />
<center><img src='/blog/latexrender/pictures/382e8b9f1c1ce31f89aa7f6548d20f21.gif' title='E_{S,S&#039;}\left( \text{Prob}[\exists h \in \mathcal H, M(h,T)=0, M(h,T&#039;) &gt; m \epsilon / 2 \ | \ S, S&#039;] \right) ' alt='E_{S,S&#039;}\left( \text{Prob}[\exists h \in \mathcal H, M(h,T)=0, M(h,T&#039;) &gt; m \epsilon / 2 \ | \ S, S&#039;] \right) ' align=absmiddle></center><br />
Sau đó, ta có thể thay <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> bằng <img src='/blog/latexrender/pictures/8437d728ac908bd7e1624632a72d9f96.gif' title='\Pi_{\mathcal H}(S \cup S&#039;)' alt='\Pi_{\mathcal H}(S \cup S&#039;)' align=absmiddle> và suy ra <img src='/blog/latexrender/pictures/40507b0bae8ea7031ac3baa90713972b.gif' title='\text{Prob}[D]' alt='\text{Prob}[D]' align=absmiddle> bằng với<br />
<center><img src='/blog/latexrender/pictures/196e870743b5ff115835207be7cd018a.gif' title='E_{S,S&#039;}\left( \text{Prob}[\exists h \in \Pi_{\mathcal H}(S \cup S&#039;), M(h,T)=0, M(h,T&#039;)&gt;m\epsilon/2 \ | \ S, S&#039;] \right) ' alt='E_{S,S&#039;}\left( \text{Prob}[\exists h \in \Pi_{\mathcal H}(S \cup S&#039;), M(h,T)=0, M(h,T&#039;)&gt;m\epsilon/2 \ | \ S, S&#039;] \right) ' align=absmiddle></center><br />
Áp dụng union bound cho ta<br />
<center><img src='/blog/latexrender/pictures/3c6ec1afa8349a42719807026a9682d0.gif' title='\text{Prob}[D] \leq |\Pi_{\mathcal H}(S \cup S&#039;)| 2^{-m\epsilon/2}' alt='\text{Prob}[D] \leq |\Pi_{\mathcal H}(S \cup S&#039;)| 2^{-m\epsilon/2}' align=absmiddle></center><br />
Với sự giúp đỡ của bổ đề trong mục trước, phần còn lại chỉ là cơ bắp.</p>
<div style="text-align: right;">QED.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/07/18/h%e1%bb%8dc-may-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Phát triển và lụi tàn của CAPTCHA</title>
		<link>http://www.procul.org/blog/2008/07/16/phat-tri%e1%bb%83n-va-l%e1%bb%a5i-tan-c%e1%bb%a7a-captcha/</link>
		<comments>http://www.procul.org/blog/2008/07/16/phat-tri%e1%bb%83n-va-l%e1%bb%a5i-tan-c%e1%bb%a7a-captcha/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 14:28:52 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Bảo mật và mật mã học]]></category>

		<category><![CDATA[Trí tuệ nhân tạo]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=890</guid>
		<description><![CDATA[Một bài viết thú vị từ Computer World. Ngoài reCAPTCHA và 3-D CAPTCHA ra, còn ý tưởng nào khác giải quyết vụ này không? Một số dự án đề nghị users giải toán vi tích phân gì đó (thay vì điền chữ như CAPTCHA). Dĩ nhiên, máy tính sẽ tốt hơn người trong tác vụ [...]]]></description>
			<content:encoded><![CDATA[<p>Một <a href="http://www.computerworld.com.au/index.php/id;489635775;fp;;fpid;;pf;1">bài viết thú vị</a> từ Computer World. Ngoài <a href="http://recaptcha.net/">reCAPTCHA</a> và <a href="http://spamfizzle.com/CAPTCHA.aspx">3-D CAPTCHA</a> ra, còn ý tưởng nào khác giải quyết vụ này không? <a href="http://random.irb.hr/signup.php">Một số dự án</a> đề nghị users giải toán vi tích phân gì đó (thay vì điền chữ như CAPTCHA). Dĩ nhiên, máy tính sẽ tốt hơn người trong tác vụ tính tích phân :-). </p>
<p>Đây là một đề tài rất hấp dẫn, xứng đáng một vài luận án tiến sĩ. Có một cái vòng luẩn quẩn: ta muốn dùng máy và thuật toán AI để sản sinh ra các objects mà người dễ nhận ra còn máy thì không. Trong khi đó, mục tiêu cuối cùng của AI lại là tối thiểu hóa khoảng cách giữa máy và người. Do đó, AI càng phát triển thì bài toán này càng khó giải quyết dùng AI. Dân làm mật mã sẽ bảo: dùng một authentication scheme nào đó. Nhưng vấn đề privacy sẽ nảy sinh.</p>
<p>Một tin không liên quan: giáo sư Papert, người bị đụng xe ở Hà Nội hồi 2006 và bất tỉnh cả tháng trời đang &#8230; <a href="http://www.boston.com/lifestyle/articles/2008/07/12/in_search_of_a_beautiful_mind/?page=1">học để trở thành Papert</a> trở lại.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/07/16/phat-tri%e1%bb%83n-va-l%e1%bb%a5i-tan-c%e1%bb%a7a-captcha/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dưới đáy tháp Ivory</title>
		<link>http://www.procul.org/blog/2008/07/15/d%c6%b0%e1%bb%9bi-day-thap-ivory/</link>
		<comments>http://www.procul.org/blog/2008/07/15/d%c6%b0%e1%bb%9bi-day-thap-ivory/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 16:36:07 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Giáo dục]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=889</guid>
		<description><![CDATA[Tờ Atlantic mới có một bài hay tuyệt!!! Nhớ đọc hết toàn bài. (Không biết các bạn đọc đã từng dạy hay học tại chức có tìm thấy một vài cảm giác quen thuộc không?)
Trích một đoạn:
I wonder, sometimes, at the conclusion of a course, when I fail nine out of 15 students, whether the [...]]]></description>
			<content:encoded><![CDATA[<p>Tờ Atlantic mới có <a href="http://www.theatlantic.com/doc/200806/college">một bài hay tuyệt</a>!!! <strong>Nhớ đọc hết toàn bài</strong>. (Không biết các bạn đọc đã từng dạy hay học tại chức có tìm thấy một vài cảm giác quen thuộc không?)</p>
<p>Trích một đoạn:</p>
<blockquote><p>I wonder, sometimes, at the conclusion of a course, when I fail nine out of 15 students, whether the college will send me a note either (1) informing me of a serious bottleneck in the march toward commencement and demanding that I pass more students, or (2) commending me on my fiscal ingenuity—my high failure rate forces students to pay for classes two or three times over.</p>
<p>What actually happens is that nothing happens. I feel no pressure from the colleges in either direction. My department chairpersons, on those rare occasions when I see them, are friendly, even warm. They don’t mention all those students who have failed my courses, and I don’t bring them up. There seems, as is often the case in colleges, to be a huge gulf between academia and reality. No one is thinking about the larger implications, let alone the morality, of admitting so many students to classes they cannot possibly pass. The colleges and the students and I are bobbing up and down in a great wave of societal forces—social optimism on a large scale, the sense of college as both a universal right and a need, financial necessity on the part of the colleges and the students alike, the desire to maintain high academic standards while admitting marginal students—that have coalesced into a mini-tsunami of difficulty. No one has drawn up the flowchart and seen that, although more-widespread college admission is a bonanza for the colleges and nice for the students and makes the entire United States of America feel rather pleased with itself, there is one point of irreconcilable conflict in the system, and that is the moment when the adjunct instructor, who by the nature of his job teaches the worst students, must ink the F on that first writing assignment.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/07/15/d%c6%b0%e1%bb%9bi-day-thap-ivory/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;Học máy&#8221; từ góc nhìn của lý thuyết tính toán (3)</title>
		<link>http://www.procul.org/blog/2008/07/14/h%e1%bb%8dc-may-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-3/</link>
		<comments>http://www.procul.org/blog/2008/07/14/h%e1%bb%8dc-may-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-3/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 06:28:47 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Lý thuyết tính toán]]></category>

		<category><![CDATA[Trí tuệ nhân tạo]]></category>

		<category><![CDATA[Xác suất &#038; thống kê]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=888</guid>
		<description><![CDATA[3. Mô hình có lẽ xấp xỉ đúng (Probably Approximately Correct) (viết tắt là mô hình PAC)
Hạn chế lớn nhất của mô hình nhất quán, như đã nói, là nó không đếm xỉa gì đến khả năng dự đoán tương lai. Một hạn chế thứ hai là trên thực tế training data ta thường có [...]]]></description>
			<content:encoded><![CDATA[<p><strong>3. Mô hình có lẽ xấp xỉ đúng (Probably Approximately Correct)</strong> (viết tắt là mô hình <strong>PAC</strong>)</p>
<p>Hạn chế lớn nhất của mô hình nhất quán, như đã nói, là nó không đếm xỉa gì đến khả năng dự đoán tương lai. Một hạn chế thứ hai là trên thực tế training data ta thường có được theo một phân bố xác suất (probability distribution) nào đó. Ví dụ như  trong bộ lọc spam emails, tần suất xuất hiện của cùng một (loại) spam email khá là lớn (Viagara, lừa đảo Nigeria, v.v.), chứ không phải mỗi email chỉ xuất hiện một lần như  ta mô tả mô hình nhất quán. Phân bố xác suất này không được nắm bắt trong mô hình nhất quán. Mô hình PAC sẽ vượt qua được hai hạn chế chính kể trên.</p>
<p><strong>3.1. Về mặt trực quan</strong>, mô hình PAC nói như sau. Thuật toán ML của ta có thể lấy mẫu độc lập từ một phân bố xác suất <img src='/blog/latexrender/pictures/c011a2fa6d262198e0a38d12bc77a31e.gif' title='\mathcal D' alt='\mathcal D' align=absmiddle> nào đó trên miền <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle>. Mỗi mẫu đều có nhãn. Sau đó, thuật toán ML sẽ đưa ra một giả thuyết <img src='/blog/latexrender/pictures/7f60492bc568323d27b44f2b5f936775.gif' title='h \in \mathcal C' alt='h \in \mathcal C' align=absmiddle> (lớp khái niêm cho trước) sao cho chúng ta <strong>rất tin</strong> rằng <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> <strong>rất gần</strong> với khái niệm cần học <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle>.</p>
<p>Làm thế nào để đo xem <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> có &#8220;<em>gần</em>&#8221; <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> hay không? Định nghĩa <strong>hàm lỗi</strong> như sau:<br />
<center><img src='/blog/latexrender/pictures/6ad86c7ade507b80ed6e523b28c45245.gif' title='\text{err}_{\mathcal D}(h) = \text{Prob}_{\mathbf x \in \mathcal D}[h(\mathbf x) \neq c(\mathbf x)]' alt='\text{err}_{\mathcal D}(h) = \text{Prob}_{\mathbf x \in \mathcal D}[h(\mathbf x) \neq c(\mathbf x)]' align=absmiddle></center><br />
Nói cách khác, &#8220;mức độ lỗi&#8221; của <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> là xác suất mà <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> đưa ra câu trả lời khác <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle>. Chú ý là ta đo lỗi của <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> dùng cùng một phân bố xác suất mà training data được lấy mẫu. (Nôm na: bắt lỗi mà dùng khác phân bố xác suất thì giống như bạn cho tôi chỉ toàn Nigeria spam emails, rồi sau đó bắt lỗi tôi rằng tôi không biết Viagra emails cũng là spam; vậy thì &#8230; tội cho tôi quá!)</p>
<p>Giá trị <img src='/blog/latexrender/pictures/aa6c70252de6b67b4449227e2abdfa5e.gif' title='\text{err}_{\mathcal D}(h)' alt='\text{err}_{\mathcal D}(h)' align=absmiddle> càng nhỏ thì <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> và <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> càng gần nhau. Đây chính là thước đo khả năng dự đoán tương lai của thuật toán ML trong mô hình PAC. Thước đo này được tính trên toàn bộ domain <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle>, nó bao gồm tất cả những examples không có trong training data set.</p>
<p>Làm thế nào để đo &#8220;<em>độ tin cậy</em>&#8220;? Chúng ta sẽ yêu cầu <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> và <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> rất gần với xác suất rất cao; xác suất này còn gọi là độ tin cậy vào thuật toán ML. (Độ tin cậy được đo dựa trên một phân bố có các thành tố của <img src='/blog/latexrender/pictures/c011a2fa6d262198e0a38d12bc77a31e.gif' title='\mathcal D' alt='\mathcal D' align=absmiddle> và cả các bits ngẫu nhiên mà thuật toán ML của chúng ta dùng. Điểm này sẽ rõ hơn khi ta xét các ví dụ trong các bài về sau.)</p>
<p><span id="more-888"></span></p>
<p><strong>3.2. Toán học của mô hình PAC-learning</strong> (cho bài toán classification). Chúng ta vẫn đi theo cái khung có sẵn khi mô tả mô hình này.</p>
<p><em>1. Học cái gì?</em></p>
<p>Chúng ta muốn học một khái niệm <img src='/blog/latexrender/pictures/bb65bc36a41e85b50d47375608d97abd.gif' title='c: \Omega \to \{0,1\}' alt='c: \Omega \to \{0,1\}' align=absmiddle> thuộc về một lớp khái niệm <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle> &#8220;cho trước&#8221;.</p>
<p><em>2. Lấy data từ đâu ra? Lấy thế nào?</em> Training data là một tập con của miền, mỗi phần tử đều có &#8220;nhãn&#8221;.</p>
<p><center><img src='/blog/latexrender/pictures/9a9abb3462714cbcd974636ac7ed6c09.gif' title=' S = \left\{(\mathbf x_1, c(\mathbf x_1)), \cdots, (\mathbf x_m, c(\mathbf x_m))\right\}  ' alt=' S = \left\{(\mathbf x_1, c(\mathbf x_1)), \cdots, (\mathbf x_m, c(\mathbf x_m))\right\}  ' align=absmiddle></center></p>
<p>Mỗi điểm dữ liệu <img src='/blog/latexrender/pictures/d27a3dafd0596db5932610d07ae42af3.gif' title='\mathbf x_i' alt='\mathbf x_i' align=absmiddle> được lấy từ  miền theo một phân bố xác suất <img src='/blog/latexrender/pictures/c011a2fa6d262198e0a38d12bc77a31e.gif' title='\mathcal D' alt='\mathcal D' align=absmiddle>.</p>
<p><em>3. Data được đưa cho learner thế nào?</em> Đưa off-line, toàn bộ <img src='/blog/latexrender/pictures/5dbc98dcc983a70728bd082d1a47546e.gif' title='S' alt='S' align=absmiddle>. Mặc dù ta có thể hiểu rằng thuật toán ML &#8220;lấy&#8221; các điểm dữ  liệu theo phấn bố xác suất, nhưng nó chỉ đưa ra giả thuyết sau khi đã có dữ liệu. Do đó vẫn là off-line chứ không phải on-line learning. (Ta sẽ nói về on-line learning sau.)</p>
<p><em>4. Tối ưu hóa cái gì? Tối ưu dưới các ràng buộc nào?</em> </p>
<p>Lớp khái niệm <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle> <strong>có thể học được dưới mô hình PAC</strong> (PAC-learnable) nếu tồn tại một thuật toán ML thỏa mãn các điều kiện sau đây:</p>
<ul>
<li> Với mọi <img src='/blog/latexrender/pictures/b60d6af9bdc84a7793c79498faf92b29.gif' title='0&lt;\epsilon&lt;1/2' alt='0&lt;\epsilon&lt;1/2' align=absmiddle>, <img src='/blog/latexrender/pictures/e9744f0a3fc443d0865a8af4e46be9dd.gif' title='0&lt;\delta&lt;1/2' alt='0&lt;\delta&lt;1/2' align=absmiddle>
<li> Với bất kỳ phân bố xác suất <img src='/blog/latexrender/pictures/c011a2fa6d262198e0a38d12bc77a31e.gif' title='\mathcal D' alt='\mathcal D' align=absmiddle> nào trên miền <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle>
<li> Thuật toán lấy <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> mẫu độc lập từ <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle> theo phân bố <img src='/blog/latexrender/pictures/c011a2fa6d262198e0a38d12bc77a31e.gif' title='\mathcal D' alt='\mathcal D' align=absmiddle>
<li> Thuật toán đưa ra một giả thuyết <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> sao cho<br />
<center><img src='/blog/latexrender/pictures/6c2dbffd2e899fee2130e4b0c012fafe.gif' title=' \text{Prob}\left[ \text{err}_{\mathcal D}(h) \leq \epsilon\right] \geq 1 - \delta ' alt=' \text{Prob}\left[ \text{err}_{\mathcal D}(h) \leq \epsilon\right] \geq 1 - \delta ' align=absmiddle></center>
</ul>
<p>Tham số <img src='/blog/latexrender/pictures/92e4da341fe8f4cd46192f21b6ff3aa7.gif' title='\epsilon' alt='\epsilon' align=absmiddle> là <em>tham số lỗi</em>, còn <img src='/blog/latexrender/pictures/77a3b715842b45e440a5bee15357ad29.gif' title='\delta' alt='\delta' align=absmiddle> là <em>tham số độ tin cậy</em>. Nếu  thêm vào đó thuật toán ML còn chạy trong thời gian poly<img src='/blog/latexrender/pictures/f34612b5c656284d58a7c5e13128e193.gif' title='\left(1/\epsilon, 1/\delta, n, |c| \right)' alt='\left(1/\epsilon, 1/\delta, n, |c| \right)' align=absmiddle> thì lớp khái niệm <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle> là có thể học được <strong>một cách hiệu quả</strong> dưới mô hình PAC (efficiently PAC-learnable). Rõ ràng là mô hình PAC sặc mùi xác suất và thống kê, dù rằng các ý tưởng tổ hợp vẫn còn rất hữu dụng trong thiết kế thuật toán ML.</p>
<p><strong>Nhận xét thêm:</strong> vẫn chưa có mô hình cụ thể cho nhiễu. Ta sẽ giải quyết vấn đề nhiễu trong một bài sau. Đòi hỏi độ tin cậy cao, lỗi nhỏ, với <em>bất kỳ</em> phân bố <img src='/blog/latexrender/pictures/c011a2fa6d262198e0a38d12bc77a31e.gif' title='\mathcal D' alt='\mathcal D' align=absmiddle> nào xem chừng có vẻ quá mạnh.  Khá ngạc nhiên là có nhiều lớp khái niệm hoàn toàn không tầm thường lại vẫn học hiệu quả được. Hai &#8220;vũ khí&#8221; của chúng ta là <em>(i)</em> hàm lỗi được định trị trên cùng phân bố xác suất như  training data, và <em>(ii)</em> các mẫu trong training set được lấy độc lập từ cùng một phân bố (<a href="http://en.wikipedia.org/wiki/I.i.d.">i.i.d.</a>). Ngoài ra, <a href="http://www.cs.berkeley.edu/~vazirani/pubs/markovian.pdf">bài báo này</a> cho thấy một số lớp khái niệm vẫn học được khi giảm nhẹ yêu cầu i.i.d. một chút.</p>
<p>Ngược lại, không ngạc nhiên khi có nhiều lớp khái niệm <em>không thể</em> học hiệu quả được, và ta sẽ chứng minh được điều đó. Một nguyên do là: phần lớn lý thuyết tính toán cho đến nay, bao gồm cả mô hình PAC, được xây dựng dựa trên phân tích trường hợp tệ nhất (worst case analysis &#8212; chúng ta không ràng buộc gì về phân bố <img src='/blog/latexrender/pictures/c011a2fa6d262198e0a38d12bc77a31e.gif' title='\mathcal D' alt='\mathcal D' align=absmiddle>). Hoàn toàn có khả năng, với một lớp khái niệm và data cụ thể nào đó, thuật toán ML của ta vẫn chạy tốt trên thực tế mặc dù ta chứng minh được là trong trường hợp tệ nhất thì lớp khái niệm này không học được. Điểm này tương tự như việc thuật toán đơn hình chạy rất tốt trên thực tế mặc dù về mặt lý thuyết nó không phải là thuật toán thời gian đa thức. Quan điểm này khác biệt về chất với <a href="http://yudkowsky.net/bayes/bayes.html">quan điểm Bayesian</a> và <a href="http://en.wikipedia.org/wiki/Bayesian_inference">phương pháp Bayesian</a> khi mà nhà thiết kế &#8220;áp đặt&#8221; một phân bố nào đó (<em>prior</em>) lên tập các khái niệm cho trước.</p>
<p>Kế đến, ta xét một vài ví dụ tương tự  như  trong mô hình nhất quán.</p>
<p><strong>3.3 Lớp khái niệm <em>Boolean Conjunctions</em> có thể học được một cách hiệu quả trong mô hình PAC</strong></p>
<p>Ta dùng chính thuật toán ML đã thiết kế cho lớp khái niệm này trong mô hình nhất quán. Thuật toán này đưa ra giả thuyết <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> là conjunction của một bộ literals, trong đó bao gồm tất cả các literals của khái niệm cần học <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle>. Do đó, <img src='/blog/latexrender/pictures/1e153284cb21ecd109ca85e430b497e8.gif' title='c(\mathbf a) = 0 \Rightarrow h(\mathbf a) = 0, \forall \mathbf a \in \Omega' alt='c(\mathbf a) = 0 \Rightarrow h(\mathbf a) = 0, \forall \mathbf a \in \Omega' align=absmiddle> (mỗi <img src='/blog/latexrender/pictures/b96e79956ddfcdc47a8ddc670be24fdc.gif' title='\mathbf a \in \Omega' alt='\mathbf a \in \Omega' align=absmiddle> là một cách gán TRUE/FALSE cho các biến Bool). Vì thế, <img src='/blog/latexrender/pictures/f0d70766a5f364e547cbd8e782dbd787.gif' title='h(\mathbf a) \neq c(\mathbf a)' alt='h(\mathbf a) \neq c(\mathbf a)' align=absmiddle> nếu và chỉ nếu <img src='/blog/latexrender/pictures/9ec5b9c2ed8b22396ac0607e1c590cc2.gif' title='c(\mathbf a)=1' alt='c(\mathbf a)=1' align=absmiddle> <strong>và</strong> tồn tại một literal <img src='/blog/latexrender/pictures/76fe0bb7664494fbad0c10088a707bae.gif' title='l \in h - c' alt='l \in h - c' align=absmiddle> sao cho <img src='/blog/latexrender/pictures/8057d61270fb30179de2f188481423c6.gif' title='a(l) = 0' alt='a(l) = 0' align=absmiddle>. Do đó,<br />
<center><br />
<img src='/blog/latexrender/pictures/993d321d258798daf4f335169d04d8e8.gif' title='\text{err}_{\mathcal D}(h) = \text{Prob}_{\mathbf a \in \mathcal D} [c(\mathbf a)=1 \wedge \mathbf a(l)=0 \ \text{for some $l \in h-c$}]  ' alt='\text{err}_{\mathcal D}(h) = \text{Prob}_{\mathbf a \in \mathcal D} [c(\mathbf a)=1 \wedge \mathbf a(l)=0 \ \text{for some $l \in h-c$}]  ' align=absmiddle><br />
</center><br />
Dùng union bound,<br />
<center><br />
<img src='/blog/latexrender/pictures/7b67f213d63f0504b31bcd6552d97b85.gif' title='\text{err}_{\mathcal D}(h) \leq \sum_{l \in h-c} \text{Prob}_{\mathbf a \in \mathcal D} [c(\mathbf a)=1 \wedge \mathbf a(l)=0 ]}' alt='\text{err}_{\mathcal D}(h) \leq \sum_{l \in h-c} \text{Prob}_{\mathbf a \in \mathcal D} [c(\mathbf a)=1 \wedge \mathbf a(l)=0 ]}' align=absmiddle></center><br />
Định nghĩa <img src='/blog/latexrender/pictures/f531042c68bebef873af76b3b2881d8b.gif' title='p(l) = \text{Prob}_{\mathbf a \in \mathcal D} [c(\mathbf a)=1 \wedge \mathbf a(l)=0 ]}' alt='p(l) = \text{Prob}_{\mathbf a \in \mathcal D} [c(\mathbf a)=1 \wedge \mathbf a(l)=0 ]}' align=absmiddle>, ta có<br />
<center><br />
<img src='/blog/latexrender/pictures/be75cbfa9bb4bb35a200f580b96055e1.gif' title='p(l) \leq \epsilon/2n, \forall l \in h-c \Rightarrow \text{err}_{\mathcal D}(h) \leq \epsilon' alt='p(l) \leq \epsilon/2n, \forall l \in h-c \Rightarrow \text{err}_{\mathcal D}(h) \leq \epsilon' align=absmiddle><br />
</center><br />
và vì thế<br />
<center><img src='/blog/latexrender/pictures/f983a6f91a9441ef67ce99f1eb9e7998.gif' title='\text{Prob}[\text{err}_{\mathcal D}(h) \leq \epsilon] \geq 1 - \text{Prob}[\exists l \in h-c, p(l) &gt; \epsilon/2n]' alt='\text{Prob}[\text{err}_{\mathcal D}(h) \leq \epsilon] \geq 1 - \text{Prob}[\exists l \in h-c, p(l) &gt; \epsilon/2n]' align=absmiddle></center><br />
Gọi <img src='/blog/latexrender/pictures/2db95e8e1a9267b7a1188556b2013b33.gif' title='l' alt='l' align=absmiddle> là &#8220;xấu&#8221; nếu <img src='/blog/latexrender/pictures/476f4fd858a1ecd961849385dace34b1.gif' title='p(l) &gt; \epsilon/2n' alt='p(l) &gt; \epsilon/2n' align=absmiddle>. Xác suất một literal xấu &#8220;sống sót&#8221; trong <img src='/blog/latexrender/pictures/1b877582b9379b3084141eabd36a0c20.gif' title='h-c' alt='h-c' align=absmiddle> sau <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> lần lấy mẫu là <img src='/blog/latexrender/pictures/ec48f2f924b9df52bd4fe1671891d287.gif' title=' \leq \left(1-p(l)\right)^m&lt;\left(1-\epsilon/2n\right)^m' alt=' \leq \left(1-p(l)\right)^m&lt;\left(1-\epsilon/2n\right)^m' align=absmiddle>. Do đó,<br />
<center><img src='/blog/latexrender/pictures/a63b757b8cc6a7c325a72fd2b0200d61.gif' title='\text{Prob}[\text{err}_{\mathcal D}(h) \leq \epsilon] \geq 1 - 2n\left(1-\epsilon/2n\right)^m&#10;   \geq 1 - 2ne^{-\epsilon m/2n} \geq 1-\delta' alt='\text{Prob}[\text{err}_{\mathcal D}(h) \leq \epsilon] \geq 1 - 2n\left(1-\epsilon/2n\right)^m&#10;   \geq 1 - 2ne^{-\epsilon m/2n} \geq 1-\delta' align=absmiddle><br />
</center><br />
như mong đợi nếu ta lấy <img src='/blog/latexrender/pictures/c5680a938152595a4a01c696f7e6d2bb.gif' title='m \geq \frac{2n}{\epsilon}\left(\ln(2n) + \ln (1/\delta)\right)' alt='m \geq \frac{2n}{\epsilon}\left(\ln(2n) + \ln (1/\delta)\right)' align=absmiddle> mẫu. Với bao nhiêu đó mẫu, rõ ràng là thuật toán vẫn chạy trong thời gian đa thức.</p>
<p><strong>Bài tập</strong>: chứng minh rằng lớp khái niệm <em>k-CNF</em> có thể học được một cách hiệu quả trong mô hình PAC</p>
<p><strong>3.4 Lớp khái niệm <em>k-Term DNF</em> KHÔNG học được một cách hiệu quả trong mô hình PAC</strong></p>
<p>Chứng minh này gần giống hệt như chứng minh rằng lớp khái niệm này không học được trong mô hình nhất quán. Chỉ có điều là ta dùng giả thiết <em>RP != NP</em> thay vì <em>P != NP</em>, vì thuật toán ML là một thuật toán ngẫu nhiên hóa.</p>
<p><strong>Bài tập</strong>: Chứng minh rằng lớp khái niệm <em>axis-parallel rectangles</em> có thể học được một cách hiệu quả trong mô hình PAC.</p>
<p><strong>3.6 Sơ kết</strong></p>
<p>Ta lại thấy rằng cách biểu diễn khái niệm và giả thuyết ảnh hưởng sâu sắc đến tính khả thi của việc học một lớp khái niệm. Nếu với lớp khái niệm <em>k-Term DNF</em> mà ta buộc thuật toán ML phải đưa ra một giả thuyết cùng dạng <em>k-Term DNF</em> thì lớp khái niệm này không học hiệu quả được. Trong khi đó, nếu ta cho phép thuật toán ML dùng <em>k-CNF</em> làm lớp giả thuyết thì lại học hiệu quả được.</p>
<p>Vì lý do này, từ đây về sau ta sẽ cho phép mô tả lớp khái niệm cho trước <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle> bằng một dạng biểu diễn trong khi thuật toán trả về khái niệm <img src='/blog/latexrender/pictures/7f60492bc568323d27b44f2b5f936775.gif' title='h \in \mathcal C' alt='h \in \mathcal C' align=absmiddle> dùng một dạng biểu diễn khác. Gọi <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> là lớp giả thuyết (theo dạng biểu diễn &#8220;khác&#8221; đó), ta đã thấy là đôi khi <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle> là &#8220;học được&#8221; nếu <img src='/blog/latexrender/pictures/82ceb548e1fc522d7b48e31792e4a72c.gif' title='\mathcal H' alt='\mathcal H' align=absmiddle> đủ &#8220;biểu cảm&#8221;. </p>
<p>Để hiểu rõ hơn, các ví dụ trên có thể được kết luận như  sau:</p>
<ul>
<li> Lớp khái niệm <em>k-Term DNF</em> <strong>không</strong> thể học hiệu quả được dùng <em>k-Term DNF</em> (làm lớp giả thuyết).
<li> Lớp khái niệm <em>k-Term DNF</em> <strong>có</strong> thể học hiệu quả được dùng <em>k-CNF</em>.
<li> Lớp khái niệm <em>k-CNF</em> có thể học hiệu quả được dùng <em>k-CNF</em>.
<li> Lớp khái niệm <em>axis-parallel rectangles</em> có thể học hiệu quả được dùng cách biểu diễn một rectangle bằng tọa độ hai đỉnh đối (hoặc bất kỳ cách biểu diễn bình thường nào.)
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/07/14/h%e1%bb%8dc-may-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>“Học máy” từ góc nhìn của lý thuyết tính toán (2)</title>
		<link>http://www.procul.org/blog/2008/07/10/%e2%80%9ch%e1%bb%8dc-may%e2%80%9d-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-2/</link>
		<comments>http://www.procul.org/blog/2008/07/10/%e2%80%9ch%e1%bb%8dc-may%e2%80%9d-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-2/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 03:30:29 +0000</pubDate>
		<dc:creator>Ngô Quang Hưng</dc:creator>
		
		<category><![CDATA[Lý thuyết tính toán]]></category>

		<category><![CDATA[Trí tuệ nhân tạo]]></category>

		<category><![CDATA[Xác suất &#038; thống kê]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=884</guid>
		<description><![CDATA[Trong bài trước ta đã định nghĩa cụ thể mô hình nhất quán. Có một vài điểm tinh tế cần nói rõ hơn.
Thứ nhất, tổng số concepts trong lớp concepts đã biết  thường là rất lớn, có thể là hàm mũ của , có thể vô hạn. Thứ hai, khi ta nói thuật toán [...]]]></description>
			<content:encoded><![CDATA[<p>Trong <a href="http://www.procul.org/blog/2008/07/09/h%e1%bb%8dc-may-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-1/">bài trước</a> ta đã định nghĩa cụ thể mô hình nhất quán. Có một vài điểm tinh tế cần nói rõ hơn.</p>
<p><strong>Thứ nhất</strong>, tổng số concepts trong lớp concepts đã biết <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle> thường là rất lớn, có thể là hàm mũ của <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle>, có thể vô hạn. Thứ hai, khi ta nói thuật toán ML cần &#8220;đưa ra&#8221; một giả thuyết <img src='/blog/latexrender/pictures/7f60492bc568323d27b44f2b5f936775.gif' title='h \in \mathcal C' alt='h \in \mathcal C' align=absmiddle> thì ta đã ngầm định một cách biểu diễn <img src='/blog/latexrender/pictures/2510c39011c5be704182423e3a695e91.gif' title='h' alt='h' align=absmiddle> nào đó. Nhớ rằng, mỗi concept là một hàm số từ <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle> vào <img src='/blog/latexrender/pictures/b38d90f7e51a6ad43644de01f3e85423.gif' title='\{0,1\}' alt='\{0,1\}' align=absmiddle>. Kích thước của <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle> rất lớn (như tổng số emails trong bài spam classification), không thể nào biểu diễn một concept bằng một lookup table được. Tổng số các concepts có thể có là <img src='/blog/latexrender/pictures/17f7d645390dbb15444266c93fb0b972.gif' title='2^{|\Omega|}' alt='2^{|\Omega|}' align=absmiddle>, do đó &#8220;chặn thông tin&#8221; (information theoretic bound) cho ta biết sẽ có rất nhiều concepts cần ít nhất <img src='/blog/latexrender/pictures/3d8a765b30ef5e57b94d4aafe2e2a9be.gif' title='\Theta(|\Omega|)' alt='\Theta(|\Omega|)' align=absmiddle> bits để biểu diễn, không thể nhỏ hơn. (Đấy là trường hợp domain hữu hạn, nếu vô hạn thì còn tệ hơn nữa.)</p>
<p>Vì thế, yêu cầu <em> &#8220;khái niệm đang học thuộc về một lớp các khái niệm cho trước&#8221;</em> là cần thiết. Nói cách khác, lớp các khái niệm cho trước này phải &#8220;vừa vừa phải phải&#8221; thôi, phức tạp quá ai mà học cho được! Nhắc lại, ta ngầm định rằng khi nói &#8220;cho trước <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle>&#8221; ta cũng &#8220;cho&#8221; luôn cả một cách biểu diễn một khái niệm bất kỳ trong <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle>. Khái niệm cần học <img src='/blog/latexrender/pictures/4a8a08f09d37b73795649038408b5f33.gif' title='c' alt='c' align=absmiddle> có biểu diễn kích thước <img src='/blog/latexrender/pictures/8479cef10a03961354aa94cb0b522dc9.gif' title='|c|' alt='|c|' align=absmiddle>.</p>
<p><strong>Thứ hai</strong>, ta giả sử mỗi phần tử của <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle> có thể biểu diễn bằng <img src='/blog/latexrender/pictures/2449b2b12012224dbe9f384565e9d9a6.gif' title='\Theta(n)' alt='\Theta(n)' align=absmiddle> bits. Ví dụ, <img src='/blog/latexrender/pictures/2e9ef3d6ef62a48d70720728d3e90e31.gif' title='\Omega' alt='\Omega' align=absmiddle> có thể là <img src='/blog/latexrender/pictures/99e4a2a2b348bd83bd72654d7a4dbaba.gif' title='\mathbb R^n' alt='\mathbb R^n' align=absmiddle> hoặc một vector gồm <img src='/blog/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.gif' title='n' alt='n' align=absmiddle> từ khóa trong một email.</p>
<p><strong>Thứ ba</strong>, khi yêu cầu thuật toán ML chạy trong thời gian đa thức, ta muốn nói là đa thức của các tham số <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> (tổng số examples trong training set), <img src='/blog/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.gif' title='n' alt='n' align=absmiddle> (kích thước một phần tử trong domain), và <img src='/blog/latexrender/pictures/8479cef10a03961354aa94cb0b522dc9.gif' title='|c|' alt='|c|' align=absmiddle> (kích thước của biểu diễn khái niệm đang học).</p>
<p>Đoạn trên có lẽ là khó hiểu khi đọc lần đầu. Tôi viết xong rồi cũng không hiểu thế nào là <em>&#8220;cho trước&#8221;</em>?. Ta hãy xét một vài ví dụ, sau đó bạn đọc quay lại đoạn ở trên chắc là sẽ thấy dễ hiểu hơn.</p>
<p><span id="more-884"></span></p>
<p><strong>2.1 Lớp khái niệm <em>Boolean Conjunctions</em> có thể học được trong mô hình nhất quán</strong></p>
<p>Giả sử Windows Vista của bạn cứ crash liên tục. Bạn có một log file ghi lại trạng thái của hệ thống mỗi lần bật máy. Trong log file này có các biến số như: &#8220;MS Word đang chạy&#8221;, &#8220;Firefox tắt&#8221;, &#8220;IE đang chạy&#8221;, vân vân. Trong log file chứa thông tin về <img src='/blog/latexrender/pictures/6f8f57715090da2632453988d9a1501b.gif' title='m' alt='m' align=absmiddle> lần chạy, có lần bị crash, lần không. Có tổng cộng <img src='/blog/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.gif' title='n' alt='n' align=absmiddle> biến số. Bạn muốn biết tổ hợp của các biến nào làm cho máy crash. Đó chính là bài toán sau đây trong mô hình nhất quán.</p>
<p>Lớp khái niệm (cho trước) <img src='/blog/latexrender/pictures/2b12dc997300ecbf4be5dc306cd72ed9.gif' title='\mathcal C' alt='\mathcal C' align=absmiddle> là tập hợp tất cả các công thức Bool có dạng</p>
<p><center><img src='/blog/latexrender/pictures/1075e8d91647cad008a1302186949b51.gif' title=' \varphi = x_{i_1} \wedge \bar x_{i_2} \wedge \bar x_{i_3}  \wedge \cdots \wedge x_{i_q}, \  \ 1\leq q \leq n   ' alt=' \varphi = x_{i_1} \wedge \bar x_{i_2} \wedge \bar x_{i_3}  \wedge \cdots \wedge x_{i_q}, \  \ 1\leq q \leq n   ' align=absmiddle></center></p>
<p>các công thức dạng này gọi là các Boolean conjunctions. Mỗi công thức là &#8220;AND&#8221; của một mớ các literals (tức là các biến và phủ định của chúng). Công thức ta cần học (hy vọng) sẽ xác định tổ hợp các trạng thái nào của hệ thống làm crash máy. (&#8221;MS Word&#8221; đang chạy và &#8220;Excel&#8221; không chạy và &#8220;BitTorrent&#8221; đang chạy, v.v.)</p>
<p>Training data sẽ có dạng kiểu như sau:</p>
<p><center><br />
<img src='/blog/latexrender/pictures/f8dce7de9a4b3a8926d25263b8078037.gif' title=' \begin{array}{ccccc||c}&#10;x_1&amp;x_2&amp;x_3&amp;x_4&amp;x_5&amp;c(\mathbf x)\\&#10;\hline&#10;1&amp;1&amp;0&amp;0&amp;1&amp;1\\&#10;1&amp;0&amp;1&amp;0&amp;0&amp;0\\&#10;0&amp;1&amp;0&amp;0&amp;1&amp;1\\&#10;1&amp;1&amp;0&amp;1&amp;1&amp;1\\&#10;0&amp;1&amp;1&amp;1&amp;1&amp;0&#10;\end{array}&#10;' alt=' \begin{array}{ccccc||c}&#10;x_1&amp;x_2&amp;x_3&amp;x_4&amp;x_5&amp;c(\mathbf x)\\&#10;\hline&#10;1&amp;1&amp;0&amp;0&amp;1&amp;1\\&#10;1&amp;0&amp;1&amp;0&amp;0&amp;0\\&#10;0&amp;1&amp;0&amp;0&amp;1&amp;1\\&#10;1&amp;1&amp;0&amp;1&amp;1&amp;1\\&#10;0&amp;1&amp;1&amp;1&amp;1&amp;0&#10;\end{array}&#10;' align=absmiddle><br />
</center></p>
<p>Từ đó, thuật toán ML của ta sẽ phải đưa ra giả thuyết kiểu như <img src='/blog/latexrender/pictures/d32cb7b2356dfc3c2cf4056335b330fa.gif' title='h = x_2\wedge \bar x_3' alt='h = x_2\wedge \bar x_3' align=absmiddle>. Đây rõ ràng là một bài toán thiết kế một thuật toán mang tính tổ hợp, không phải thiết kế một thuật toán mang tính xác suất thống kê. Thuật toán tìm (hoặc trả lời là không tồn tại) giả thuyết nhất quán với training data cho bài này rất đơn giản: <strong>(bước 1)</strong> tìm tất cả các literals có giá trị bằng 1 trong tất cả các hàng mà <img src='/blog/latexrender/pictures/815b2e774e34b63a236194e46095696a.gif' title='c(\mathbf x)=1' alt='c(\mathbf x)=1' align=absmiddle>; giả thuyết của chúng ta sẽ là AND (hay conjunction) của tất cả các literals náy; <strong>(bước 2)</strong> nhìn vào các hàng có <img src='/blog/latexrender/pictures/971b42d97ce1738fe6633e4379368615.gif' title='c(\mathbf x)=0' alt='c(\mathbf x)=0' align=absmiddle> xem có hàng nào mâu thuẫn với giả thuyết không; nếu không thì thuật toán đưa giả thuyết này làm câu trả lời, nếu có mâu thuẫn thì trả lời là không tồn tại giả thuyết nào nhất quán với data. Trong ví dụ trên thì thuật toán này sẽ trả về giả thuyết <img src='/blog/latexrender/pictures/afcdbf1048f0027b4bec2a4cecda3a2f.gif' title='h = x_2\wedge \bar x_3 \wedge x_5' alt='h = x_2\wedge \bar x_3 \wedge x_5' align=absmiddle>. Chú ý rằng đây không phải là giả thuyết duy nhất nhất quán với data, và cũng không phải là giả thuyết &#8220;ngắn gọn&#8221; nhất.</p>
<p><strong>Bài tập:</strong> <em>(i)</em> chứng minh rằng thuật toán trên làm việc đúng ý ta muốn. <em>(ii)</em> giả thuyết nhất quán với data và chứa ít literals nhất trong ví dụ trên là giả thuyết nào? <em>(iii)</em> Nếu ta muốn tìm giả thuyết ngắn nhất và nhất quán với data thì bài toán này có lời giải hiệu quả trong thời gian đa thức không?</p>
<p><strong>2.2 Lớp khái niệm <em>k-Term DNF</em> KHÔNG THỂ học được trong mô hình nhất quán, với mọi k ≥ 2</strong></p>
<p>Lớp khái niệm này được định nghĩa như sau: nó bao gồm tất cả các Boolean formulae có dạng dưới đây, trong đó k là một số nguyên ≥ 2 cho trước:</p>
<p><center><img src='/blog/latexrender/pictures/63b42fb790745b31b1bc410b3df31b53.gif' title=' \varphi =&#10;   \underbrace{( \bullet \wedge \dots \wedge \bullet)}_{\text{term $1$}}&#10;   \vee \underbrace{( \bullet \wedge \dots \wedge \bullet)}_{\text{term $2$}}&#10;   \vee \dots&#10;   \vee \underbrace{( \bullet \wedge \dots \wedge \bullet)}_{\text{term $k$}}   ' alt=' \varphi =&#10;   \underbrace{( \bullet \wedge \dots \wedge \bullet)}_{\text{term $1$}}&#10;   \vee \underbrace{( \bullet \wedge \dots \wedge \bullet)}_{\text{term $2$}}&#10;   \vee \dots&#10;   \vee \underbrace{( \bullet \wedge \dots \wedge \bullet)}_{\text{term $k$}}   ' align=absmiddle></center><br />
Các công thức Bool có dạng trên gọi là công thức ở dạng <em>k-Term DNF</em></p>
<p>Để chứng minh rằng lớp khái niệm này không học được, ta sẽ chứng mình rằng bài toán xác định xem có tồn tại một một công thức Bool dạng <em>k-Term DNF</em> nhất quán với data hay không là bài toán <em>NP-Hard</em>. Tôi sẽ chỉ phác thảo đại ý chứng minh này ở đây với k=3 thôi. Ta sẽ chuyển giản (reduce) bài toán 3-coloring về bài toán đang xét. Xét một instance G=(V,E) của bài toán 3-coloring. Ta xây dựng một training data set như sau. Mỗi đỉnh <img src='/blog/latexrender/pictures/9e3669d19b675bd57058fd4664205d2a.gif' title='v' alt='v' align=absmiddle> của đồ thị tương ứng với một biến Bool <img src='/blog/latexrender/pictures/edb90376706beaa43f7f22195aae11e6.gif' title='x_v' alt='x_v' align=absmiddle>. Bảng training data (giống bảng trong đề mục <strong>2.1</strong>) sẽ có các hàng mà <img src='/blog/latexrender/pictures/815b2e774e34b63a236194e46095696a.gif' title='c(\mathbf x)=1' alt='c(\mathbf x)=1' align=absmiddle> tạm gọi là <em>hàng-1</em>, và các hàng mà <img src='/blog/latexrender/pictures/971b42d97ce1738fe6633e4379368615.gif' title='c(\mathbf x)=0' alt='c(\mathbf x)=0' align=absmiddle> gọi là <em>hàng-0</em> cho tiện. Sẽ có tổng cộng <img src='/blog/latexrender/pictures/74fcb594bdd93c0f956682ae1ea013e6.gif' title='|V|' alt='|V|' align=absmiddle> hàng-1 và <img src='/blog/latexrender/pictures/cbdcf0e203060323ebcd0079f280f4b8.gif' title='|E|' alt='|E|' align=absmiddle> hàng-0. Với mỗi đỉnh <img src='/blog/latexrender/pictures/9e3669d19b675bd57058fd4664205d2a.gif' title='v' alt='v' align=absmiddle> của đồ thị, tạo một hàng-1 bằng cách gán <img src='/blog/latexrender/pictures/3ce4040933844c780746f90c2cab154d.gif' title='x_v=0, x_{u}=1, \forall u\neq v' alt='x_v=0, x_{u}=1, \forall u\neq v' align=absmiddle>. Với mỗi cạnh <img src='/blog/latexrender/pictures/45210da832f9626829457a65e9e7c4d0.gif' title='uv' alt='uv' align=absmiddle> của đồ thị, tạo một hàng-0 bằng cách gán <img src='/blog/latexrender/pictures/8d58be1d6df20153d2193515c8d2f119.gif' title='x_u=x_v=0, x_w=1, \forall w\neq u,v' alt='x_u=x_v=0, x_w=1, \forall w\neq u,v' align=absmiddle>. Đồ thị G tô được bằng 3 màu nếu và chỉ nếu tồn tại một công thức <em>k-Term DNF</em> nhất quán với bảng training data vừa xây dựng.</p>
<p><strong>Bài tập</strong>: giả sử ta mở rộng lớp khái niệm <em>k-Term DNF</em> ra thành lớp khái niệm <em>DNF</em> chứa tất cả các công thức dạng <em>DNF</em> (không cần biết bao nhiêu term). Chứng minh rằng lớp khái niệm <em>DNF</em> có thể học được.</p>
<p><strong>2.3 Lớp khái niệm <em>k-CNF</em> có thể học được trong mô hình nhất quán</strong></p>
<p>Lớp khái niệm <em>k-CNF</em> bao gồm các công thức có dạng sau:<br />
<center><img src='/blog/latexrender/pictures/f7566bf436cbe8bc483b18bb62017fc4.gif' title=' \varphi =&#10;   \underbrace{( \bullet \vee \dots \vee \bullet)}_{\text{$\leq k$ literals}}&#10;   \wedge \underbrace{( \bullet \vee \dots \vee \bullet)}_{\text{$\leq k$ literals}}&#10;   \wedge \dots&#10;   \wedge \underbrace{( \bullet \vee \dots \vee \bullet)}_{\text{$\leq k$ literals}}&#10;  ' alt=' \varphi =&#10;   \underbrace{( \bullet \vee \dots \vee \bullet)}_{\text{$\leq k$ literals}}&#10;   \wedge \underbrace{( \bullet \vee \dots \vee \bullet)}_{\text{$\leq k$ literals}}&#10;   \wedge \dots&#10;   \wedge \underbrace{( \bullet \vee \dots \vee \bullet)}_{\text{$\leq k$ literals}}&#10;  ' align=absmiddle></center><br />
Để học  lớp khái niệm này, rât đơn giản: với mỗi một bộ &le; k literals <img src='/blog/latexrender/pictures/7e389c1b61e380e2591f8071b9878004.gif' title='(l_1,\dots,l_q)' alt='(l_1,\dots,l_q)' align=absmiddle>, q &le; k, tạo một biến Bool mới <img src='/blog/latexrender/pictures/5d8a555c9df37148a42e9abf5f112867.gif' title='y(l_1,\dots,l_q)' alt='y(l_1,\dots,l_q)' align=absmiddle>. Cứ tưởng tượng <img src='/blog/latexrender/pictures/8b4a96fd11fe508205be70b9df1fd302.gif' title='y(l_1,\dots,l_q) = l_1 \vee \dots \vee l_q' alt='y(l_1,\dots,l_q) = l_1 \vee \dots \vee l_q' align=absmiddle> và dùng thuật toán cho lớp khái niệm <em>Boolean Conjunctions</em> trong đề mục <strong>2.1</strong>, conjunctions trên các biến <img src='/blog/latexrender/pictures/5d8a555c9df37148a42e9abf5f112867.gif' title='y(l_1,\dots,l_q)' alt='y(l_1,\dots,l_q)' align=absmiddle>. Sau đó chuyển hypothesis trên các biến y ngược lại thành hypothesis trên các biến x.</p>
<p><strong>Chú ý quan trọng:</strong> bất kỳ một công thức <em>k-Term DNF</em> nào cũng viết được dưới dạng một công thức <em>k-CNF</em>. Như vậy nếu thuật toán ML của ta được tự do output một hypothesis dạng <em>k-CNF</em> cho bài toán học lớp khái niệm <em>k-Term DNF</em> thì bài toán này lại có thể học được! Điểm này cho thấy cách biểu diễn khái niệm đóng vai trò cực kỳ quan trọng trong các thuật toán learning. Ta sẽ nói thêm về đề tài này sau.</p>
<p><strong>2.5 Lớp khái niệm <em>axis-parallel rectangles</em> có thể học được trong mô hình nhất quán</strong></p>
<p>Các hình chữ nhật song song với trục (axis-parallel rectangles) là các hình chữ nhật mà một cặp cạnh song song với trục x, cặp còn lại song song với trục y. Bây giờ, cho ta một mớ các điểm trong mặt phẳng làm training set như hình dưới đây thì việc tìm một hình chữ nhật nhất quán với data (hoặc chỉ ra là không tồn tại) rất là dễ dàng. Ví dụ này cho thấy cả domain lẫn lớp khái niệm đều có thể vô hạn.</p>
<p><center><img src="http://www.procul.org/blog/wp-content/uploads/2008/07/axis-rectangles.png" alt="" title="axis-rectangles" width="500" height="320" class="aligncenter size-full wp-image-886" /></center></p>
<p>Dĩ nhiên, ta có thể mở rộng bài toán lên không gian n-chiều và vẫn học được.</p>
<p><strong>2.6 Lớp khái niệm <em>separation hyperplanes</em> có thể học được trong mô hình nhất quán</strong></p>
<p>Cho hai nhóm điểm trên không gian <img src='/blog/latexrender/pictures/99e4a2a2b348bd83bd72654d7a4dbaba.gif' title='\mathbb R^n' alt='\mathbb R^n' align=absmiddle>, tìm một hyperplane sao cho mỗi nhóm nằm một bên hyperplane. Bài này có thể giải được bằng một LP-solver nào đó. Đây chẳng qua là một dạng của bổ đề Farkas.</p>
<p><center><img src="http://www.procul.org/blog/wp-content/uploads/2008/07/separation.png" alt="" title="separation" width="313" height="311" class="alignnone size-full wp-image-887" /></center></p>
<p><strong>2.7 Sơ kết</strong></p>
<ul>
<li> Ngoài các hạn chế như đã chỉ ra, mô hình nhất quán còn cho phép một lớp khái niệm con (k-term DNF) KHÔNG học được trong khi đó lớp khái niệm to hơn (DNF) thì lại học được.
<li> Một mô hình đơn giản và nhiều hạn chế như vậy mà  quyết định xem một lớp khái niệm có học được hay không đã không tầm thường. &#8220;Hùng mạnh&#8221; và &#8220;đơn giản&#8221; xem ra khó có thể cùng đạt tới được. Trong bài tới chúng ta sẽ xét một mô hình tốt hơn, gọi là mô hình <em>có lẽ xấp xỉ đúng</em> (Probably Approximately Correct &#8212; PAC). Đây là mô hình trung tâm của COLT, và có lẽ là một trong các ý tưởng sẽ mang lại cho Valiant giải Turing trong mộti vài năm tới.
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2008/07/10/%e2%80%9ch%e1%bb%8dc-may%e2%80%9d-t%e1%bb%ab-goc-nhin-c%e1%bb%a7a-ly-thuy%e1%ba%bft-tinh-toan-2/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
