- Download version 3.5.3 64-bit (not 3.6, current latest) from https://www.python.org/ftp/python/3.5.3/python-3.5.3-amd64.exe
- Use the custom install and make sure to specify install for all users.
- This should change the path to the Program Files directory instead of %LocalAppData%...
- Make sure 'add to PATH' is checked.
- Open an elevated command prompt and run the following commands (native python method):
- pip install -U setuptools
- pip install -U wheel
- pip install -U --no-cache-dir https://pypi.python.org/packages/ce/2c/6a1cf90746879c2d05df04efc86a8b1edd79d7b06323a5c8fa63f5520824/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
TensorFlow Tutorial on Windows 10
GMail's Categories
The more I think about it, the more it strikes me that this system has a very real advantage over the fixed rules approach. The problem with those rules is having to maintain them as they inevitably become out of date (distribution list name changes, email address changes, etc...).
The built in categories are great: Priority, Updates, Social and Promotions (aka spam-lite). For example: my apartment complex sends out a "delivery for you" email whenever a package arrives. I want to know about that immediately so I've dragged those into the Priority inbox. I've only had to do this 2 or 3 times before the system learned to automatically put them there. It somehow figured out that I don't really care too much about the "buy stuff from this vendor we sold ad space to" type messages (they go in Promotions).
When it miscategorizes an email it's easy enough to correct by moving it to the right category. This can be done on phone but I've found that it's faster for me to recategorize a bunch of messages at once on desktop.
I expect mass mail campaigns to optimize for (or against) gmail's new system. Given that it learns from me dragging and dropping stuff into the right category it should be harder to game the system for long.
Since I've given up on manually categorizing** high frequency information streams I kind of appreciate the balance they struck between broad applicability without overwhelming granularity. Once a list has 7 or more elements in it IMHO it becomes unmanageable for most and has to be generalized/massaged/abstracted back into some set of 7 or fewer buckets so that humans can manage it without too much overhead. Kudos for cutting that magic number in half (due to User Interface concerns I'd guess).
While it takes some manual categorization before to get the system from a totally anecdotal guesstimate of 67% accuracy up way above 95%+ accuracy the up-front work is easy enough and infrequently required enough to not outweigh the substantial benefit of having a personal software agent helping me sift the wheat from the chaff.
Editing a Wiki from a smartphone
I recently listened to a podcast about a model of consciousness that relies on quantum mechanics. The theory, called Orchestrated Objective Reduction, posits (not uncontroversially) that consciousness arises when the wave function collapses in the apolar hydrophobic regions of microtubules in the brain.
That's a mouthful but, being a digital citizen, I figured I'd weigh in on the wikipedia page. As usual I'm on my smartphone. Coincidentally almost all of my listening and news reading is done on my phone. As was this post.
First problem: How do I get to the talk page? This is traditionally where you start before making edits to a page. I couldn't find a link to it on the mobile site.
Manually inserting Talk: before the last part of the URL does the trick. Seems like there should be a "talk" or "discuss" link somewhere...
Second problem: How do you take part in the discussion?
It looks like the convention is to pick a section, edit it then add your comments to the bottom. Followed by some moniker to delimit the end of your comment. Egads, somebody introduce these guys to the year 2000. Even phpboard would be a better discussion system...
Applying Artificial Intelligence
Applying AI is an entirely different proposition than creating, discovering or even understanding AI. For the most part one could profitably apply AI to a problem without understanding the internal mathematics of the AI algorithm.
A classical example of this is teaching neural networks how to perform a logical XOR (exclusive or). Exclusive OR is a function that returns 1 if the inputs differ and 0 if they are the same. This example is popular for a number of reasons but, for the purpose of applying AI, the key points are:
- Neural networks take a vector of numerical inputs and produce a vector of numerical outputs.
- XOR is a problem that takes a vector of numerical inputs and produces a single numerical output.
- Applying AI involves training the neural network on a bunch of input vectors until its output matches the expected output.
When it comes to applying the neural network there's really no need to understand exactly how the neural network "learns" the XOR algorithm. (See my master's thesis for an example of spending way too much time on explaining the mathematics behind backpropagation neural networks.) For the purpose of applying the neural network to a given problem the functioning of the network itself can be considered a black box.
Of course, in the real world things are rarely that simple. Most of the problems you encounter in the real world don't present themselves as a vector of numerical inputs. Nor will your boss/client accept a vector of numerical outputs as a solution.
So most of the work of applying neural networks in the real world is that of translating the problem into a form that the AI algorithm can understand then translating its output into a form that your boss/client/audience can use. If you're lucky the solutions will be very good at least 2/3rds of the time.
There are many other techniques in AI (genetic algorithms, fuzzy logic, support vector machines, nearest-neighbor algorithms) but for the most part they all require numerical input, produce numerical output and generally do not require you to develop a formal model of your problem and its solution. If you've already got a formal model of your problem and its solution then you're probably better off using numerical or statistical methods.
