I don't have the details of test cases in mind at this point. I have ideas about testing the program and I will develop more detailed cases as I get into the AGI part.
I am going to use a text-based approach. My first test will be to see if I can get the program to learn to distinguish words through simple conversation. And I want to see if it can learn something about the meaning of the words I am using based on the kinds of relations between them. The first, most primitive sort of learning is through co occurrence. However, the whole purpose of learning is to (potentially) queue relationships between words based on previous learning. So the next step is to see if it can learn to create some of the semantic (or more broadly, the conceptual) structures of the words. I believe that the simplest example that comes to mind is the use of the parts of grammar. But can this be learned rather than designed into a text-based AI program? Yes of course but the program would and should be able to detect a much greater range of parts of speech and grammatical relations including those which do not fit into the narrower idea of 'parts of speech' as specified by the professional linguistics community. So while initial learning may be based largely on co-occurrence, the conceptual categories which should begin to appear in a text based computer program designed to look for them will be based on words that previously occurred within proximity of each other and on words that previously had occurred in proximity with words that co-occur and so on. As these conceptual categories accumulate some should exhibit certain strengths that you cannot find by using stock grammatical categories or stock corpuses of co-occurrence (even though these corpuses are humongous). Of course a lot of useless relations will also accumulate but as long as there is some consistency in 'education' I believe the program should be able to find relations that are reliable. Here another one of my theories should kick in. I believe that by looking for conceptual structure the program should be able to leverage incremental trial and error learning by finding structural relations that explain a great many things at once. In some cases these structural relations will be similar to abstract relations like syntactic relations, but in general, an abstraction corresponds to a conceptual abstraction that can be learned implicitly or through explicit references (like discussion). I am really interested in finding conceptual structure. But if these goals are too ambitious, I can redesign my program in a number of ways. At the simplest level I can add word parsing and avoid the first stage of learning to distinguish individual words so that I can have a better idea of what is going on while debugging. If necessary I could seed the program with conceptual categories of my own making to see if I can get the strategy to work using a pre-defined model. If I had to start with a pre-defined model of conceptual structure and basic relations between key words, I can then add definitions of relations to help the program look for conceptual structure based on the use of a few different modes of learning. So, when I see that the program is using the mode of imitation, for example, I could write certain types of sentences which would help emphasize the specified word relations when being imitated. And when I saw that it was using a mode that took an action based on the use of commands that it had previously learned I could define goals through the use of command words and direct it to modify a learning strategy or even explore a new one. So these examples are more like strategies rather than test cases. However the basis for these strategies is that I believe that I can develop easier and easier test cases if I need to and still retain a basic AGI strategy as long as it is being molded into a program that can exhibit some true learning. It would use an ability to detect useful structural relations as a means of leveraging incremental trial and error learning. Jim Bromer On Sat, Sep 28, 2013 at 10:58 AM, Jim Bromer <[email protected]> wrote: > I haven't started testing an AGI concepts because I am still working > on the data management parts of the program. However, I am hoping to > be doing something more interesting by 2014 at the latest. I think > that earlier in the year (2013) I mentioned that I had a great many > ideas - or test 'cases' in mind. The way my program would work would > make it fairly easy for me to redesign it so that it could work with > simpler cases. I will try to think of a way to explain this. My > opinion is that if I have a good sense of what AGI has to do then I > can define very simple experiments that could work to produce AGI with > better conceptual management and more power. Here I am claiming that > I can discern some programming techniques ("conceptual management") > that would increase the potential for AGI as something as something > that can be discerned from more computer power. I will try to think of > a few test cases. > Jim Bromer > > On Fri, Sep 27, 2013 at 10:22 PM, Matt Mahoney <[email protected]> > wrote: >> Do you have any test cases? >> >> On Fri, Sep 27, 2013 at 9:47 PM, Jim Bromer <[email protected]> wrote: >>> At the end of December 2012 I said that I felt that I had figured out >>> a way to write an AGI program. I then said that if someone really did >>> have it all figured out that he should be able to write the program in >>> a year. I then changed that to two years. For one thing we should >>> give a researcher, even an amateur researcher - especially an amateur >>> researcher - some leeway. And for another, it should be clear that >>> writing an AGI program that could actually work must be pretty >>> difficult. I also added that other contingencies, like health, could >>> intervene on the schedule. But I then pointed out that there are some >>> indicators that should make it clear that the programmer really did >>> not have it all figured out. Like if he worked on it for 5 months and >>> still had not started in on experimenting with some actual AGI >>> situations then that would be an indicator that he wasn't working at >>> as advanced a level as he might think. Expanding that to twice that >>> length is 10 months and I am there. However, I did have a worrisome >>> health problem that really did cost me about a month's time of work. >>> So this means that if I am not working on the AGI experiments within >>> the next month, after 11 months have passed, then I believe that will >>> be a strong indicator that I really did not have it all figured out - >>> as I felt that I had last December. >>> >>> One of the hang-ups that I got into was that I wanted to write my own >>> data management system. It has been an interesting project but I >>> probably should have used a simple data management system in a very >>> direct way so that I could get to work on the AGI prototype. If I >>> actually got the prototype to a promising stage I could then have >>> worked on the data management system. That is a reasonable point of >>> view. However, there is an alternative view. A conceptual management >>> system, in my opinion, is going to be complicated. If I can't write a >>> simple foundational data management system then I probably would not >>> be able to manage a conceptual management system. So from this >>> alternative point of view, all the time I have been spending on trying >>> to write my own very basic data management system may turn out to have >>> been a reasonable investment, given my goal. >>> >>> I just started thinking about a problem that I would have if I shared >>> my program. My program is converting the various arrays it has into >>> byte arrays to save them to disk using a fundamental strategy that I >>> found in the .net help files. However, that means that most of the >>> data will be saved according to the Little-Endian implementation of my >>> computer and I just started wondering how I would make the files >>> available to other kinds of implementations. I guess I could write a >>> simple conditional algorithm for the file accesses so it doesn't seem >>> like it would be a big deal. >>> >>> But even worse than that, the files would be such a security risk I am >>> not even sure that they should be casually shared. So how should I >>> deal with this problem? I'm not going to worry about it now. This is >>> exactly the sort of thing that I shouldn't be worrying about because I >>> should be more focused on developing a prototype. If the prototype >>> actually worked then I probably will be able to find a way to deal >>> with these side issues. Or at least the Little-Big-Endian problem >>> looks simple. >>> >>> But the shared file security problem is not that important to me right >>> now because I have to try to avoid the pitfalls of additional >>> complications. I have to focus on getting the project to the next >>> stage and just see what happens then. >>> >>> Jim Bromer >>> >>> >>> ------------------------------------------- >>> AGI >>> Archives: https://www.listbox.com/member/archive/303/=now >>> RSS Feed: https://www.listbox.com/member/archive/rss/303/3701026-786a0853 >>> Modify Your Subscription: https://www.listbox.com/member/?& >>> Powered by Listbox: http://www.listbox.com >> >> >> >> -- >> -- Matt Mahoney, [email protected] >> >> >> ------------------------------------------- >> AGI >> Archives: https://www.listbox.com/member/archive/303/=now >> RSS Feed: https://www.listbox.com/member/archive/rss/303/24379807-f5817f28 >> Modify Your Subscription: https://www.listbox.com/member/?& >> Powered by Listbox: http://www.listbox.com ------------------------------------------- AGI Archives: https://www.listbox.com/member/archive/303/=now RSS Feed: https://www.listbox.com/member/archive/rss/303/21088071-f452e424 Modify Your Subscription: https://www.listbox.com/member/?member_id=21088071&id_secret=21088071-58d57657 Powered by Listbox: http://www.listbox.com
