1,444 karma · joined August 17, 2010
hnchat.com:N1jRS58LGuGVd6IotNBO
This is an interesting and deep question. I believe that there are multiple ways to tell the story of a phenomenon. Using POS categories or verb tenses helps us to organize and learn about the medium. It is important for humans to know what a verb tense - in theory and practice - is, to be able to form not just grammatical sentences, but also ones, that express things clearer.
However, there is no rule that says that these concepts must be learned first before you can do anything else. In a sense, I see the (neural) machines taking a step back.
Whereas earlier attempts at language modeling took into account a lot of linguistic concepts, maybe even tailored to a specific human language, the more end-to-end approaches ignore these things and get better results. What can this tell you about the concepts? They are certainly useful and have been established by a scientific community. The machine, as it reads not just tens or hundreds of sentences but billions, creates a mathematical model, that happens to have aspects, that have very useful real world sides to them. A machine that learns a language model - or that learns translation, can teach us new things about words, and ultimately also about the world. I believe this is a beautiful aspect of the current neural renaissance.
----
Kanerva in a preface to Geometry and Meaning writes:
> We think of some sciences, by their very nature, as being more mathematical than others. We even refer to physics and other heavily mathematical sciences as "hard sciences," as if to imply that social sciences and humanities are somehow soft or easy. Another way to see this picture, however, is that mathematics itself is hard and that it would be applied first to sciences that themselves are relatively easy. [...] It matters greatly that the mathematics be appropriate. [...] Mathematics is a tool for coping with complexity. [...] This brings us to the substance of [this] book: the exploration of mathematics that would be appropriate for describing concepts and meaning. The branch of mathematics that has traditionally been associated with meaning is logic. Logic is also discussed here, yet the main emphasis is on identifying mathematical spaces that would lend to modeling of meaning. (http://www.puttypeg.net/book/chapters/foreword.html)
You can basically create, run and evaluate a model within 10 minutes (e.g. with scikit-learn or Tensorflow). It would even be an acceptable model that might solve your company's problem.
But you have to plan in a few years of deliberate practice to work through statistical learning theory and its prerequisites to get an overview and to be able contribute to the scientific or open source efforts in that field.
I don't believe it needs to, I believe diversity in a relatively young field is an advantage as it helps to not get stuck in a local minimum, so to speak.
Open source projects can have such a huge leverage, that the cost reductions in comparison to commercial offerings could be enormous. On the other hand, open source projects will gather people, who at least care about the specific domain (this does not mean, there is no politics). Treating software as public infrastructure could be a huge step forward.
Currently I try to use the following scenario as orientation: If a completely new developer would walk in and wanted to install or build or contribute to a current system/project, how much I would have to explain to this person? How many, "yes, true, but only if" style statements would I need to make?
The optimum here is, that a developer will contribute, without me needing to explain or motivate anything.
Do you use a certain approach? How would you describe it?
> The disparity in architecture between brains and computers is matched by disparity in performance. Notably, computers excel in routine tasks that we - our brains - accomplish with effort, such as calculation, whereas they are yet to be programmed for universal human traits such as flexible learning, language use, and understanding.
He focuses on the representation problem and develops a more flexible representation of concepts with what he called hyperdimensional computing[1].
[1] http://redwood.berkeley.edu/pkanerva/papers/kanerva09-hyperd...
The developer mindset needs to change as well. I seldom here people wondering about the sheer computing power of the systems they use.
Many developers also seem to get a kick out of building complex systems (with (most of the time too) many abstraction layers burning cpu cycles) - because they seem to believe building complex things somehow means having control over complexity - but I'm not sure about that.
Apparently not, never used it, but impressive: https://github.com/trifork/erjang
[1] http://lucene.apache.org/core/
[2] we do this (over 300G of complex data) with a tool called solrbulk and on a single server in less than four hours, https://github.com/miku/solrbulk
The interview went fine and I think I was offered something around 30k, which was below my current wage in another (non-capital) European city, so I had to decline, although I loved Madrid and the team seemed really nice.
Great, I sometimes do that, too. Downside is that your patience level for "enterprise architecture" goes way down.
You tell me once, I need X, I won't care. You tell me ten times a day I need X, I might get tired. Color me pessimistic, but people in general just need to be told with clear words over and over what to do and without a strong independent or stubborn mind they will follow.