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

<channel>
	<title>OpenCog Brainwave &#187; Learning</title>
	<atom:link href="http://blog.opencog.org/tag/learning/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.opencog.org</link>
	<description>The latest developments in building an open-source mind</description>
	<lastBuildDate>Thu, 04 Aug 2011 02:45:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Hacking on Link-Grammar</title>
		<link>http://blog.opencog.org/2008/08/17/hacking-on-link-grammar/</link>
		<comments>http://blog.opencog.org/2008/08/17/hacking-on-link-grammar/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 19:43:50 +0000</pubDate>
		<dc:creator>Linas Vepstas</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Theory]]></category>
		<category><![CDATA[grammar]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[link-grammar]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[WSD]]></category>

		<guid isPermaLink="false">http://opencog.wordpress.com/?p=41</guid>
		<description><![CDATA[I hack, heads-down, on link-grammar every now and then. Yesterday, I fixed another round of broken parse rules: making sure that sentences like "John is altogether amazingly quick." "That one is marginally better" "I am done working" "I asked ...]]></description>
			<content:encoded><![CDATA[<p>I hack, heads-down, on <a href="http://www.abisource.com/projects/link-grammar/">link-grammar</a> every now and then. Yesterday, I fixed another round of broken parse rules: making sure that sentences like &#8220;John is altogether amazingly quick.&#8221; &#8220;That one is marginally better&#8221; &#8220;I am done working&#8221; &#8220;I asked Jim a question&#8221; &#8220;I was told that crap, too&#8221; all parse correctly.</p>
<p>Solving these required adding new rules to the link-grammar dictionary: so, for example, adding   the rule &#8220;O+ &amp;amp; {@MV+}&#8221; to the dictionary entry for &#8220;asked&#8221; &#8212; thus allowing the word &#8220;asked&#8221; to take a direct object (&#8220;&#8230;asked Jim&#8230;&#8221;) and an indirect object (&#8220;&#8230; a qeustion&#8221;).</p>
<p>Patching dictionary entries by hand is tedious and time consuming. The long term goal is to get to the point where the system can learn new entries on its own. So I&#8217;ve been day-dreaming about how to do that, and some of the baby-steps in that direction.</p>
<p>The first step is to put all of the rules into a database where they can be easily modified, added-to, and deleted. Currently, the rules all live in a file, which can only be hand-edited.</p>
<p>A second step is to assign probabilities to the rules: often, multiple parses are possible, yet not each rule is equally likely to lead to a correct parse. So it would be better to have a probability  assigned to each rule, indicating how often it leads to a good parse. These probabilities are already needed for the GSoC project of adding a SAT solver to link-grammar. I&#8217;ve got a database of tens of millions of word pairs and link types, ready to go for this step.</p>
<p>A third step is to distinguish good parses from bad ones: this is the parse-ranking step: to judge parsees for the likely-hood of being good, or bad. There are superficial things one can do for parse ranking, and quite complex ones. I am hoping to someday-soon reinforce the parse-ranking scores with the results of word-sense disambiguation. Which brings us to the next point:</p>
<p>Step four &#8212; some grammar parsing rules are appropriate only for some senses of a word, but not for others. Link grammar already accounts for this at a rough scale: it has distinct rules for different parts of speech. These are indicated by tacking a single extra letter to the end of a word: walk.v (I walk.v)  versus walk.n (I took.v a walk.n) This basic idea can be further refined, for finer divisions than just parts of speech: some word senses can only be used in certain ways, and not others.  The technical problem is that 26 letters is not enough&#8230; already, link-grammar is using some 20 or so of these suffixes.  So this mechanism needs to be expanded, somehow.</p>
<p>Step five &#8212; where teh rubber hits the road &#8212; actually learning new rules.  This is much more vague; my ideas are still swimming. There are two distinct problems: new words, and fixing rules for existing words. New words should not be *much* of a problem: try to find synonyms for a word, and assume the new word can be used like the synonym. Modifying existing rules is much much harder&#8230;</p>
<p>&#8230; so hard, in fact, that I&#8217;m not sure I&#8217;m ready to engage in that, just yet.  Some steps can be taken in that direction, by looking at minimum-spanning-tree dependency grammars (MST grammars): that is, computing the mutual information of word pairs, and comparing them to the output of link-grammar. This should suggest where new links can be created. Then comes the question: what should the appropriate link type be, for this new link?  For some words, perhaps synonyms can help, but other words are so unique, that they have no synonyms:  the word &#8220;to be&#8221; is so central to the English language  that  trying to discover information about it is very difficult: it has no synonyms, even as it has many.</p>
<p>I&#8217;ve got some infrastructure set up to run this last experiment: I&#8217;ve got a fairly large collection of parsed sentences, from which I can build mutual information pairs, and compare these to  link-grammar parses. In fact, I&#8217;ve already done so: I use these for  parse ranking. (that is, if a link-grammar parse has a high mutual information content, then I assume its a good parse).</p>
<p>I could turn this around: given a sentence that is parsing badly, I can look for high mutual-info parses. Perhaps broaden the coverage by comparing to parses of approximately synonymous words, perhaps reinforced by word-sense disambiguation. But this generally leads to a combinatorial explosion &#8212; which, I guess is expected. We know that general intelligence requires a lot of CPU.  The trick is to have the patience to set up an experiment, run the experiment, wait for its results, and then do it again&#8230;</p>
<p>Enough for now. I&#8217;m off to work on &#8220;related words&#8221; &#8212; another part of the puzzle.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.opencog.org/?flattrss_redirect&amp;id=41&amp;md5=f6b8fb1a58d3829d75f2f19ba7194238" title="Flattr" target="_blank"><img src="http://blog.opencog.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.opencog.org/2008/08/17/hacking-on-link-grammar/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Spaced repetition and memory</title>
		<link>http://blog.opencog.org/2008/07/09/spaced-repetition-and-memory/</link>
		<comments>http://blog.opencog.org/2008/07/09/spaced-repetition-and-memory/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 00:17:43 +0000</pubDate>
		<dc:creator>Joel Pitt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Theory]]></category>
		<category><![CDATA[AttentionAllocation]]></category>
		<category><![CDATA[HumanMind]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[OpenCog]]></category>

		<guid isPermaLink="false">http://opencog.wordpress.com/?p=25</guid>
		<description><![CDATA[An article in Wired from a while back on Piotr Wozniak (no relation to Steve), a researcher of optimal memory and learning strategies, got me thinking about learning theory and memorization in the context of OpenCog. From the article ...]]></description>
			<content:encoded><![CDATA[<p>An <a href="http://www.wired.com/medtech/health/magazine/16-05/ff_wozniak?currentPage=3">article in Wired</a> from a while back on <a>Piotr Wozniak</a> (no relation to Steve), a researcher of optimal memory and learning strategies, got me thinking about learning theory and memorization in the context of OpenCog. From the article (emphasis mine):</p>
<blockquote><p>Long-term memory, the Bjorks said, can be characterized by two components, which they named <strong>retrieval strength</strong> and <strong>storage strength</strong>. Retrieval strength measures how likely you are to recall something right now, how close it is to the surface of your mind. Storage strength measures how deeply the memory is rooted. Some memories may have high storage strength but low retrieval strength. Take an old address or phone number. Try to think of it; you may feel that it&#8217;s gone. But a single reminder could be enough to restore it for months or years. Conversely, some memories have high retrieval strength but low storage strength. Perhaps you&#8217;ve recently been told the names of the children of a new acquaintance. At this moment they may be easily accessible, but they are likely to be utterly forgotten in a few days, and a single repetition a month from now won&#8217;t do much to strengthen them at all.
</p></blockquote>
<p>So, in memory studies, they talk of <em>storage strength</em> and <em>retrieval strength</em>. In my observation, retrieval strength is analogous to the distance of an atom&#8217;s short term importance to the attentional focus. Atoms just below the attentional focus threshold will be much easier to retrieve, both because there is more chance that they are stored locally and in memory and because they are more likely to be used by mind agents than atom&#8217;s with lower short term importance. Storage strength, on the other hand, is related to the long term importance of an atom. Atom&#8217;s with very low long term importance are unlikely to persist in the atom space, or more accurately they&#8217;ll be preferentially forgotten over atoms with higher long term importance.</p>
<blockquote><p>One of the problems [with learning] is that the amount of storage strength you gain from practice is inversely correlated with the current retrieval strength. In other words, the harder you have to work to get the right answer, the more the answer is sealed in memory.</p></blockquote>
<p>Perhaps they&#8217;ll be a need to incorporate this. Something that is persistently of use, but only becomes useful at significantly spaced periods of time. Requiring an OpenCog instance to reason about or research the fact again each time would be inefficient if there is some way of recognizing this long term trend. In a way, this is where something like a System Activity Mining agent might come in to play, to data mine such trends, however&#8230; I&#8217;m personally unsure about whether such an agent will scale to working on an entire atom space, particularly if it&#8217;s trying to detect these long term and infrequent trends.</p>
<p>One way to implement the storage of these infrequently but consistently used atoms is to assess the velocity at which short term importance changes when bringing an atom into the attention focus. This velocity would be greater for atoms which are harder to recall since they have further to travel to reach the attentional focus. A higher velocity could then confer more long term importance when an atom entires the attentional focus rather than getting long term importance purely from the stimulus reward system.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.opencog.org/?flattrss_redirect&amp;id=25&amp;md5=6c908155620770c32bbf4780953b3094" title="Flattr" target="_blank"><img src="http://blog.opencog.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.opencog.org/2008/07/09/spaced-repetition-and-memory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

