This repository was archived by the owner on Jul 6, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 97
Motivation
cjrd edited this page Dec 12, 2012
·
2 revisions
- it can be frustrating to try to learn something outside your field
- if a lot of other people are in the same boat — e.g. data analysis is getting a lot of attention, so you want a broad overview of machine learning — then someone’s probably offering a high quality online course on it
- Colorado: I’m not sure about “someone’s probably offering a high quality online course on it”. This is becoming increasing true for machine learning and other CS fields, but it’s certainly not the case for fields such as high energy physics
- but if you have more specific and idiosyncratic goals, you’re probably not going to find a course:
- you’re a researcher, want to collaborate with someone in another field on an interdisciplinary project, want to get each other up to speed quickly on your projects so you have something to build on
- you’ve just read a fascinating post in an econ or science blog, and want to understand the mathematical basis for it as well as the current scientific status of the claim
- you’re considering research topics, startup ideas, or career paths, and want to learn about the current state of the art on some particular topic like machine learning for analyzing energy usage
- you’re writing a tutorial on an advanced research topic, or an article for popular consumption. You want to provide your readers with relevant background, without reinventing the wheel by explaining it yourself
- Colorado: These are some great examples. Is it possible to use a kmap as an online course? E.g. there are thousands of piano tutorial snippets on youtube, could an expert create a knowledge map that directs a beginning piano player to a sequence of youtube snippets that would be equivalent to taking a beginner course in piano? The motivation here is that a kmap course could use multifarious resources: e.g. a subset of tutorials from http://www.pianonanny.com/, intermixed with various youtube clips and sheet music obtained from http://www.pianostreet.com/. This would take a lot of effort for one person, but perhaps one person could initialize make an entire kmap from www.pianonanny.com, then different users could add different resources for the various topics
- resources like Wikipedia and Stack Overflow are good for simple things
- but the pages bring in concepts you’re not familiar with; when you look up those concepts, they in turn require other concepts
- we want to build a package manager for knowledge to deal with this dependency hell
- probably not going to make it easy to learn something far outside your field
- managing your own education, without the structure provided by a course, requires much more discipline and self-awareness than doing well in a course
- but right now, the process of sifting through textbooks and research papers not intended for non-experts is more painful than it needs to be
- if we can take something which is frustrating and painful and make it merely challenging, that’s a big step forwards
- dependency graph for knowledge
- nodes correspond to individual concepts which have to be understood as a unit
- typically 3-5 pages of text, though some may be a few paragraphs
- edges correspond to dependencies, of the form “in order to really understand concept B, first you need to understand concept A”
- since you don’t always know what you want to learn, nodes are also annotated with pointers to related topics, annotated with short descriptions of the relationship
- e.g., “if algorithm X doesn’t scale to your dataset, consider algorithm Y”
- e.g., "this machine learning algorithm is closely related to model Z of the human visual system
- these are probably too tangential to mention in a course, but may be very useful to a particular person at a particular time
- nodes correspond to individual concepts which have to be understood as a unit
- strategies for construction
- need to allow for highly decentralized development
- should only need to understand a node and its immediate dependencies
- possible strategy: make decisions that seem reasonable locally, and then spot problems using automated tools
- e.g. bottleneck score: if you delete a node from the graph, how many long-distance dependencies are removed? if this is high, a node should be split up
- need to allow for highly decentralized development
- since the assumption is that we can’t guess what you want to learn or why, the presentation needs to be flexible
- support both searching and browsing
- support a variety of learning styles (e.g. learning every topic thoroughly before moving on to the next; or charging full speed ahead and going back to repair gaps in your understanding)
- give a direct path to a goal, with minimum overhead
- e.g. may require 10 times as much background knowledge to understand the proof of a theorem than to know how to use it; should be able to specify either
- e.g. may be easier to state what a mathematical object is than to give the “tricks of the trade” for manipulating it; e.g., QED vs. graduate study in quantum mechanics
- should not make assumptions about age of the user
- e.g. undergrad courses often try to teach intangible skills like mathematical maturity, teamwork, conscientiousness
- while these skills are important, we should avoid combining them with the technical content because that would make strong assumptions about the users and limit who would make use of it
- on the other hand, it may be useful to have separate graph nodes corresponding to, e.g., math problem solving strategies
- since this project is experimental, and the right presentation mode is not obvious, the system should be built in an open and modular manner so that other groups can innovate on top of the same content, and not have to build everything from scratch