Friday, November 25, 2016

Speech recognition

As in the usual case with many large companies, when I called an airline last week, there was an automated voice that instructed me to select an option that best suits my request before I could speak to a human operator. However, instead of pressing buttons to move through the menus, I needed to say out loud my choice to the phone. This once again reminded me of my curiosity about speech recognition software. How could Siri, Cortana, and automated phone systems decipher what the user is saying? I decided to look more into this. 

When the sounds were first recorded by the microphone, the speech recognition systems would turn the audio into digital signals by using the analog-to-digital (A/D) converter. These signals could be readily compared to the speech patterns stored in the database of words (kinda like a dictionary), to decide what the user probably said. Rather than storing the patterns of thousands of words, however, the database only needs to “recognize the few dozen phonemes that the spoken languages are built on (English uses about 46, while Spanish has only about 24)”, then analyze what phonemes made up each word. (1) 

This method is the basics of speech recognition, and would work just fine in automated response system like that of the airline I called. However, for complex applications like Siri and Cortana, there are also statistical analysis and artificial intelligence involved. Speech recognition softwares take feedback from the user to improve their performance as they go, so that if the user correct a mistake they made, they would avoid making similar mistakes next time. These applications also take into consideration the probability of different words following a certain word, to chunk out the word with the highest contextual likelihood.

Speech recognition softwares are becoming increasingly prevalent, not only for large companies in answering customers’ queries, but also as “personal assistant apps” (2) that can answer random questions, fulfill your request, or make sassy comebacks sometimes to entertain you. Computer scientists are also making efforts to increase speech recognition systems so that it could decipher what the users say with higher accuracy.  


Works Cited
(1) and (2): http://www.explainthatstuff.com/voicerecognition.html

Friday, November 18, 2016

Internet cookies



Cookie!

No, not the delicious, rich and crunchy piece of deliciousness that first come up to our mind when we hear that term ( I guess my blog title already spoiled it). I'm referring to the Internet cookies, which are little documents that store information about users and their preferences. These data could be accessed by either the client computer or the website saving the information to the cookie. For example, if you visit a website for the first time, and choose your language preference as English, this piece of information would be saved to the cookie on your home computer. Then, the next time your returns to that website, it would automatically retrieve the data from the cookie and display texts in English, saving you from the hassle of having to choose the language again. 



Cookies can contain any type of information that the creator of the site decides to save, from the username you entered, the time you visited the website, the links you clicked on and the items you want to add to the shopping basket. After the website is loaded, a writing operation to save data to cookies would be evoked by some kind of user actions, like pressing a submit button. If the user “has elected to disable cookies then the write operation will fail” (1).This is a simple, yet effective way to store data — websites can tailor their layout and information to the user’s need, while the user would also save time and receive more satisfaction from browsing that site. 

Web servers quickly realized this potential, and improved the use of cookies by dealing with its limitation: size. Because the amount of data a cookie can store is limited, it could not keep up with the increasing growth of websites and data. Thus, instead of saving the data directly on the cookie, the website only stores a unique ID in the cookie on the user’s computer, which serves as an identifier for later visits. The main data, meanwhile, would be stored on the website’s system. That allows web servers to store an unlimited amount of data, and easily retrieve the ID to look up the user on their system through the cookie. 

Yet, cookie also comes with concerns about privacy and security. Advertisements usually utilize third-party cookies — one website you visited earlier that saved information about you in their system would send that data to other websites’ embedded ads, so that  they could dynamically show the ads you’re most interested in. This is why I often saw ads about the online clothing stores I usually visited while browsing Facebook new feeds. Some users might see this as a risk of personal privacy violation, however, since websites can “build up profiles of users without their consent or knowledge” (2).

Works Cited: 

Friday, November 11, 2016

3D Printer for makeup products

I remembered when the computer lab in my high school first got its 3D Printer, everyone marveled at how it could print out little plastic objects instead of the plain, conventional papers. Years later, when I read about Grace Choice and her “Mink” 3D Printer, I experienced the same excitement. Who would have thought 3D printers could be applied to cosmetics?

Before discussing “Mink” specifically, let’s go over the functioning principles of 3D printers. First, a 3D digital model could be created by 3D scanners, which employed different technologies like “time-of-flight, structured / modulated light, volumetric scanning and many more.” (1). Then, that model would be sliced into thousands of horizontal layers with a software, and feeded to the printer through USB, SD or wifi. The 3D Printer would then print the object layer by layer. I imagine the basic API would probably be something like this:
public void print(new Object(width, length, height)){
for(int i = 0; i < height, i++){
print(width*length);
}
}


Now, the 3D printer developed by Grace Choi and presented at TechCrunch Disrupt NY  essentially works the same way. Instead of buying expensive makeup products by such brands as L’Oreal or Chanel which just charge a price disproportional to its material costs, consumers can use “Mink” to print out their own cosmetics. They can choose any color hue by specifying its unique hex number, then “Mink” would print that exact hue — using FDA-approved color dye — on the powder substrate that constitute regular makeup. 

That means rather than paying for overpriced blushes, eye powders and lipsticks that have trendy colors, customers can just take a picture of a celebrity wearing that lipstick color, find its hexadecimal number by Photoshop, and effortlessly print out their desired product. “Mink”, if gaining popularity from users, might be a big blow to long-established cosmetics companies, present customers with a more affordable alternative, and revolutionize the makeup industry.

Sources: http://3dprinting.com/what-is-3d-printing/

3D Printer for makeup products

I remembered when the computer lab in my high school first got its 3D Printer, everyone marveled at how it could print out little plastic objects instead of the plain, conventional papers. Years later, when I read about Grace Choice and her “Mink” 3D Printer, I experienced the same excitement. Who would have thought 3D printers could be applied to cosmetics?

Before discussing “Mink” specifically, let’s go over the functioning principles of 3D printers. First, a 3D digital model could be created by 3D scanners, which employed different technologies like “time-of-flight, structured / modulated light, volumetric scanning and many more.” (1). Then, that model would be sliced into thousands of horizontal layers with a software, and feeded to the printer through USB, SD or wifi. The 3D Printer would then print the object layer by layer, reading every slice as a 2D image. I imagine the basic API would probably be something like this:
public void print(new Object(width, length, height)){
for(int i = 0; i < height, i++){
print(width*length);
}
}


Now, the 3D printer developed by Grace Choi and presented at TechCrunch Disrupt NY  essentially works the same way. Instead of buying expensive makeup products by such brands as L’Oreal or Chanel which just charge a price disproportional to its material costs, consumers can use “Mink” to print out their own cosmetics. They can choose any color hue by specifying its unique hex number, then “Mink” would print that exact hue — using FDA-approved color dye — on the powder substrate that constitute regular makeup. 

That means rather than paying for overpriced blushes, eye powders and lipsticks that have trendy colors, customers can just take a picture of a celebrity wearing that lipstick color, find its hexadecimal number by Photoshop, and effortlessly print out their desired product. “Mink”, if gaining popularity from users, might be a big blow to long-established cosmetics companies, present customers with a more affordable alternative, and revolutionize the makeup industry.

Sources: http://3dprinting.com/what-is-3d-printing/

Friday, November 4, 2016

Hadoop - Makes data storage easier

Online banking, shopping, advertisement, stock exchange — the majority of services and businesses nowadays need to store their data in computer systems. However, with the significant increase in both volume and complexity of the data collected from customers and business interactions, it becomes a challenging task to effectively manage large influx of data, store them and analyze them to predict market behavior. Not only restricted to online shopping and banking, large data sets are also an essential part of genome sequencing and clinical research. An effective platform to manage these massive amount of data is necessary.


Hadoop, an open source framework developed by computer scientists Mike Cafarella and Doug Cutting, came to the rescue. The basic idea of Hadoop is that instead of dealing with data at once, it would distribute those data and calculations across different nodes in the cluster. By breaking application into blocks, we could accomplish multiple tasks simultaneously and “handle thousands of terabytes of data”(1). Hadoop consists of two main parts: the Hadoop Distributed File System (HDFS) and Data Processing Framework, known as MapReduce. Each has its own specific function. While the HDFS stores data that you can retrieve and run an analysis on at any time, the MapReduce is responsible for processing data. 

What’s great about Hadoop is not only that it’s fast and efficient, but also that it is robust enough to continue running even when some nodes fail to work. This is essential for companies wanting to avoid disastrous system failure and a loss of data. If some nodes cease to function, the processing task would then be rapidly redirected to other functional nodes, keeping the system operating like normal. Hadoop also automatically stored many copies of data, in case of hardware failure. Plus, this open-source framework is free, and easily scalable - you can just add more nodes for your system to handle more data. Hadoop is thus a great solution for the Big Data problem.

Works Cited
(1) http://searchcloudcomputing.techtarget.com/definition/Hadoop
(2) http://sites.gsu.edu/skondeti1/2015/10/17/hadoop-and-the-hype/ (Image)

Friday, October 28, 2016

Gesture Recognition Technology

While walking through the automatic doors in THC, I sometimes waved my hands before entering so that if the timing is right, it looks like I have telekinesis power. With the current gesture recognition technology, though, waving hands to control a game or turning off televisions are no longer an impossible feat.


Microsoft is leading this technological field with Kinect, a gesture recognition platform that allows humans to communicate with computers entirely through speaking and gesturing (MarxentLab) instead of conventional input data like mice, buttons and keyboards. Here are the basic functioning principles of this technology.

Step 1: A camera will recognize the gestures as inputs, and feeds the data into a sensing device.

Step 2: The gesture is analyzed. An efficient approach is the skeletal-based algorithms, where a virtual skeleton of the person is computed and parts of the body are mapped to certain segments (Wikipedia). The position and orientation of each segments, as well as the angles and relative positions between them, would determine the prominent characteristics of the gesture.

Step 3: A software would identify the gestures based on said characteristics, scanned through a gesture library to find the correct match.

Step 4: The computer would execute the command associated with that specific gesture. 

Kinect also looks at a range of other human characteristics such as facial tracking and voice recognition in addition to gesture recognition, then "reconstructs all of this data into printable three-dimensional (3D) models" (Marxentlabs). These measures helped make the algorithm better at identifying intentional gestures and carrying out the accordingly commands. 


From virtual reality games where users can immerse themselves in a realistic game environments, to sliding side doors with a wave, gesture recognition proved to have a lot of potential in different fields. This technology can also be used in surgery rooms for highly sensitive tasks, especially if the medical professional may not be within reach of the display yet still needs to manipulate the content being shown on the display (Marxentlabs)

Works Cite:
http://www.i-programmer.info/news/105-artificial-intelligence/2176-kinects-ai-breakthrough-explained.html
http://www.marxentlabs.com/what-is-gesture-recognition-defined/
https://en.wikipedia.org/wiki/Gesture_recognition#Algorithms

Friday, October 21, 2016

Old school graphics

I came across this Quora post about creative solutions to graphic limitations in old school games, and it’s fascinating so I decided to share it with you guys.

Typical home computers in the early 1980s only has 16KB or 32KB RAM. This poses a challenge for video games developers, as the video chip back then didn’t have its own memory bank and had to share with the CPU. Because the screen resolution is 320 x 200 pixels, which is equivalent to 64,000 pixels, if would take up 8KB of memory just for 1 bit color (black and white). If you want to display image with 16 colors, or 4 bits, that would take up 32K, leaving no RAM space for the actual game code. Such high-complexity system of 8-bit (256 colors) or 24-bit as of now is of course out of the question.

So what kinds of innovative solutions did engineers came up with to circumvent this issue, and get more colors without using up a lot of RAM? One of the popular approach is color cells.

Engineers broke the screen down into smaller sections (8-pixel squares) called cells, so that you can change the color of each specific cells. Each color cell has a 1-bit system, so it can display only one foreground and one background colors, requiring only 1 byte of memory for the colors. Although this method reduces the memory consumed by graphics, it makes the artwork much more challenging. You can have 16 colors on screen but can’t put the colors exactly where you want them to go. For example, we can’t draw that white line in between those two cells, because that would be a third color. 



Dealing with this problem requires meticulous attention to details and strenuous efforts from artists. Look at this picture. Really colorful and complex, isn’t it? 

But if you zoom into the picture, what you would find is this. Note that each cell has strictly 2 colors.

Another picture to help you understand the effects of this 1-bit color cell better:


Yet, because this approach has many limitations, engineers came up with some other improved options. Multi-color mode (used by Commodore 64 home computer) made the pixels twice as wide which cut the screen resolution by half, and only consumed 9K RAM. Some games developers were happy with trading off half of the resolution for having up to 4 colors per cell, because they considered colors more important in their products than resolution. 

Another option is hardware sprite, which is a graphic image that is incorporated into a larger scene as if it’s part of the scene, while in fact it can move indepedently. Sprites are a popular way to create large, complex scenes as you can manipulate each sprite separately from the rest of the scene. “The Commodore 64 had 8 different sprites, the Nintendo had 64 different sprites. The Mario character alone was made of 4 sprites.”



It’s amazing how far we have gone in terms of graphics that sometimes we might take it for granted. These simple but elegant coding solutions are why I love computer science - it's an art of problem solving that is difficult to master but highly rewarding!

Works Cited:

https://www.youtube.com/watch?v=Tfh0ytz8S0k
http://www.gadgetexplained.com/2015/11/retro-video-game-old-computer-graphics.html
https://www.quora.com/What-is-the-smartest-weirdest-most-elegant-coding-solution-to-a-problem-youve-ever-come-across

Friday, October 14, 2016

One-time Passwords


In 2004, Bill Gates predicted the death of password login systems. A survey conducted recently by Secure Ath supported his prediction - it demonstrated that 69% of IT decision markers responded that they would do away with passwords completely in the next five years. This trend is understandable, as the traditional password has some paradoxical problems: complicated ones are more secure yet easily forgotten, while short and simple passwords have high risks of being hacked. 

An alternative to password that many companies have been leaning towards is time-based one-time password (TOTP). In two factor authentication system, the system would ask users to enter both their regular passwords and the TOTP to grant the access. TOTP is a temporary passcode which keeps on changing as time passes, and thus is safer and less vulnerable against replay attacks than regular passwords. 


To ensure that each password is unique, TOTP is generated by an algorithm that uses the current time of day as one of its factors. An interesting fact is TOTP measures time in Unix time (roughtly the number of seconds that have passed since January 1, 1970 GMT - I just looked it up, right now it’s 1476488872 seconds!). Since this would cause a new code to be generated each second, a time step X=30 is defined by default, meaning a new code is only generated every 30 seconds so that users have enough time to type in the code after it has been generated (Jacob). 

And just as how sometimes social network sites might ask you to confirm your account by entering a passcode sent to your phone, the SMS method is a popular option for two factor authentication system. The TOTP code would be sent to your smartphone or other devices. After the user types that code into the sever, the server would verify the one-time password and give you access to your account. So next time you have to find your phone to log into Gmail, Facebook or other secured accounts, remember how OTTP is an extra layer of protection for your passwords.

http://blogs.forgerock.org/petermajor/2014/02/one-time-passwords-hotp-and-totp/
https://garbagecollected.org/2014/09/14/how-google-authenticator-works/

Friday, October 7, 2016

Reverse Image Search

The other day, when I was searching for fish images to use in our aquarium programming assignment, I suddenly wondered if there exists a search engine where you could search by images to find matching results instead.  It turned out that the Google already implemented the Reverse Image Search a while ago, but the common internet users (including me) might not know of this feature. Now, every time you see a picture of a celebrity and wonder who that is, the Reverse Image Search would definitely be helpful!

How does this technology work actually? Google’s algorithms are not posted online as open-sourced code, so it’s difficult to know the exact algorithm they used to make Google Reverse Image Search. It’s likely that Google combined the following techniques, then ranked the results using a proprietary algorithm (Quora).

Feature detection is an essential component of computer vision applications, and it’s a popular approach for reverse image search. Computer algorithms would examine every pixel and detect the most “interesting” features in a picture such as blur, rotation, scale and illumination change. There commonly used algorithms for feature detection are SIFT, PCA-SIFT and SURF - each has its own merits and flaws. For example, “SIFT is slow and not good at illumination changes, but it is invariant to rotation, scale changes and affine transformations”, while SURF is fast but it’s not good with rotation and illumination changes. PCA-SIFT is the best but it has problems with image blur(Quora). Usually, the programmer would consider all of these information, and decide to make what kinds of trade-offs depending on the application. 

Search by color is another interesting method for reverse image source. It would create digital signatures for each image based on its color, store all of the signatures in a database, and then the search would return images containing the colors user selected. Visual similarity, on the other hand, analyzes the main attributes of images such as colour, shape, texture, luminoity, complexity, objects and regions (Quora).  The algorithm would map images into an n-dimensional Euclidean vector space (R^n) (for any one who hasn’t taken Linear Algebra, Khan Academy has great resources for this). Similar images are mapped to points close to each other and dissimilar images are mapped to points far away from each other. Then the algorithm would calculate the distance between each point to decide which images are more similar to each other. The result list would be generated as a sorted array containing all the images by their distance to the specified search image. (Mayflower)

On the internet many people could not give a definite answer regarding what combination of algorithms Google used for its reverse image search. The technologies I discussed above are the most common approaches to this problem, but if you have any further insight into this matter, please comment on my blog! Thank you! 


Sources: https://www.quora.com/What-is-the-algorithm-used-by-Googles-reverse-image-search-i-e-search-by-image
https://blog.mayflower.de/1755-Image-similarity-search-with-LIRE.html

Image Source: https://ongoingpro.com/copyright-find-stolen-photos-online-reverse-image-search/
 https://www.quora.com/What-is-the-algorithm-used-by-Googles-reverse-image-search-i-e-search-by-image

Thursday, September 29, 2016

Computer program helps diagnose brain cancer

Having defeated humans at chess and Go!, computers also outperformed us on another sophisticated task: brain cancer diagnosis. This computer program, which was recently developed at Case Western Reserve University, could diagnose 12 out of 15 brain cancer patients correctly through analyzing their MRI scans. Meanwhile, for two other physicians that studied the same MRI scans, one got 8 and the other one got 7 right. Utilizing radiomic features, this program was nearly twice as accurate as two neuron-radiologists combined!

This progress is really important. Because MRI scans for radiation necrosis and recurrent brain cancer have almost indistinguishable patterns, physicians often have difficulty in differentiating them just by eyeballing the images. Treatments for these two ailments are also vastly different, so the quicker and more accurately we can identify the disease, the better the patients would be. 

So how does this program work? Researchers combined machine learning algorithms with 
radiomics, an emerging field that “aims to extract large amount of quantitative features from medical images sing data-characterization algorithms” (Wikipedia). Using sample MRI scans from numerous patients, scientists trained computers to recognize radiomic features that differentiate brain cancer from radiation necrosis. Then computer algorithms would help sort out the most discriminating radiomic features, or the subtle details that physicians often missed. 


For example, let's look at the two different MRI scans for tumor recurrence and radiation necrosis below. It’s quite difficult to notice the disparity between two scans and decide which one is which. The program’s images output, however, clearly display which one has less heterogeneity (shown in blue) which would indicate radiation necrosis; and which one has more heterogeneity (shown in red), which is representative of tumor recurrence.



Currently, the researchers are still trying to improve the program’s accuracy by using a much larger collection of images for the machine learning algorithms. In the future, this program would be a great tool for neuro-radiologists in inspecting suspicious lesions and diagnosing their patients.

Sources:
https://www.sciencedaily.com/releases/2016/09/160915132448.htm
https://en.wikipedia.org/wiki/Radiomics

Friday, September 23, 2016

Quantum Computing versus traditional computers




Compared to the bulky and huge computers that might take up a whole room a century ago, the portable and efficient laptops most college students carry around nowadays prove a remarkable progress. Yet, although the size and efficiency of computer have improved significantly, its functioning principle remained essentially the same. 

Conventional computers’ storage and processing processes are accomplished using witches called transistors. A transistor can only either be on or off: if on, it can store a number one (1), if it's off, it stores a number zero (0). As we had discussed in class, this binary digit (bit) system has some limitations. The more information the computer needs to store, the more binary ones and zeros—and transistors—it needs to handle. Since most conventional computers can only do one step at a time, there’s a finite amount of data that can be processed. Some complex algorithms thus “might require more computing power and time than any modern machine could reasonably supply” (ExplainThatStuff).

Theoretically, quantum computing could offer a solution to this problem and even build a whole new generation of computers. Instead of running on electrical circuits as ‘bits”, quantum computers will utilize “tiny particles that are magnetically suspended in extremely cold environment, called quantum bits or “qubits” (Science Alert). One particular advantage “qubits” have is that they can take on the value of 0, 1, both, or an infinite number of values in between; and store multiple values simultaneously. This parallel processing feature gives quantum computers much greater computing ability than traditional ones. Its performance in such tasks as processing massive calculations, rendering complex graphics animations, or cracking encryption by brute force, would be significantly faster. If successfully developed, quantum computers thus will be essential to some specific fields such as encryption or graphics.


Currently, quantum computing researchers faced many limitations that are often contingent on advances in superconductors, nanotechnology, and quantum electronics — equally complicated research fields. However, there have been many promising progress in quantum computing. For example, in 2000, “MIT professor Isaac Chuang used five fluorine atoms to make a crude, five-qubit quantum computer. Five years later, researchers at the University of Innsbruck produced the first quantum computer that could manipulate a qubyte (eight qubits)” (ExplainThatStuff).

Sources:
http://www.explainthatstuff.com/quantum-computing.html
http://www.sciencealert.com/watch-quantum-computing-explained-in-less-than-2-minutes
https://en.wikipedia.org/wiki/Quantum_computing

Friday, September 16, 2016

MyShake helps detect earthquakes

Earthquakes are costly not only in terms of infrastructures and assets, but also loss of lives. For example, the 1995 Kobe earthquake in Japan led to $131 billion worth of damage, and unfortunately more than 4000 deaths. Thus, one essential goal of seismologists has been developing more effective early-warning system to minimize the damage. Usually, the seismic networks worldwide can detect earthquakes and send data back to scientists. One limitation to this approach is that there are some areas where the network is thin, which impede seismologists from accurately and timely analyzing the situation.


App developers offers a solution with a recently developed app called MyShake that helps user detect earthquakes. This smartphone app would “pick up and interpret nearby quake activity, estimating the earthquake's location and magnitude in real-time, and then relaying the information to a central database for seismologists to analyze.”(LiveScience). Users carrying smartphones with them in earthquake zones can instantly share data with scientists, notifying them about the seismic activities. MyShake thus can fill the gaps caused by the imperfect seismic networks.

MyShake’s underlying principles is similar to fitness apps, as it also utilized the smartphone’s accelerometer, an instrument that detects changes in device’s orientation, accelerational forces, vibration, tilt and movement. So that it would not confuse everyday shakes with that of earthquakes, the app contrasts the vibrating motion against the signature amplitude and frequency content of earthquake’s shakes. 



After MyShake detects an earthquake, it would send an alert to a central processing site instantly. A network detection algorithm would then be activated by incoming data from multiple phones in the same area, to "declare" an earthquake, identify its location and estimate its magnitude (LiveScience). Although right now this app is limited to only collecting and transmitting data to the central processor, its end goal is to send warnings back to individual users. Yet, even without this feature, MyShake is already incredibly helpful to seismologists. The more data it can gather about earthquakes, the more scientists can improve their understanding of quake behavior, which would help them design better early warning systems and safety protocols (LiveScience). 

Works Cited: http://www.livescience.com/53703-earthquake-detecting-app-myshake.html
http://www.techgiri.com/appsforpc/this-myshake-android-app-can-detect-earthquakes-now-available-for-download/
http://kbctv.co.ke/blog/2016/04/15/deadly-earthquake-hits-in-southern-japan/

Friday, September 9, 2016

Beacon and its potential

Retails, brands and manufacturers are celebrating the advent of beacons - a location-based technology that broadcast signals using Bluetooth Low Engergy (BLE). Basically, beacon enabled apps are notified when the device enters or exists the range of a beacon (Lighthouse). Suppose Forever21 decides to implement beacon sensors in its store. Then whenever customers enter that beacon’s zone, apps installed on their smartphones can pick up the coupons, sales, special promotions, recommendations transmitted from the beacon. Consumers love coupons and sales, while retailers enjoy driving more clients to their doors. Clearly, beacons result in a win-win situation. 

As aforementioned, beacons used BLE. BLE is a wireless network technology designed for low energy consumption and cost, while maintaining a communication range similar to that of its predecessor, Classic Bluetooth (Lighthouse). These small wireless devices would broadcast packets of data at a regular interval, which would then be collected by smartphones. Smartphone apps would in turn decide how close the phone is from each of the beacons, and correspondingly trigger such actions as offering discounts, displaying alerts, opening doors, etc…. In short, beacons act as a broadcaster sending the data, while the iOS app is the receiver.

Unlike GPS, which might not give you signal when you walk inside a large building, beacons could determine your physical location indoors with accuracy. These small wireless devices might not only create a paradigm shift in advertising and shopping experience, but also be applied to tourism, education, entertainment industry and many other fields.


Sources: http://lighthouse.io/beginners-guide-to-beacons/
http://estimote.com/press-kit/

Friday, September 2, 2016

Artificial Intelligence (AI) assists people with severe disability





With virtual surgery, robots that aid in rehabilitation, or computer systems that analyze medical data, Computer Science (CS) proved to be an increasingly important part of medical advances. A recently developed innovation - brain-machine interface (BMI) technology - once again exemplifies CS’s versatile applications. BMI aims to help people with severe disability use mental commands to execute every day actions, such as sending emails or operating a TV.

Research on BMI has demonstrated positive progress. At University of Pittsburgh, scientists developed the technology that allows monkeys to mentally control a robotic arm to feed itself pieces of fruit. The electrical signals generated in the monkey’s brain when it thinks about the action would be recorded by tiny electrodes implanted in the motor cortex. A computer-decoding algorithm would translate the signals and trigger the arm’s movement (Science Daily). This brain-controlled device might hold the key to a better future for paralyzed patients, assisting them in performing simple tasks.

Recently, a robotic wheelchair that combines brain control with AI was also developed by researchers at the Federal Institute of Technology in Lausanne. This technology was a step forward from the Electroencephalography (EEG). For EEG, users need to wear a skullcap and constantly make mental commands to maneuver the wheelchair around, which could be pretty tiring. The newly developed robotic wheelchair, on the other hand, allows patients to think of the command only once, and then the software would take care of the rest (Technology Review). 

Such promising results in researching about BMI shows the future potential for this technology. If successful, these mentally-controlled devices and wheelchairs would revolutionize the lives of those who have lost their muscle control and mobility.

Works Cited

Autocorrect - Is your phone reading your mind?



Except for some mortifying and hilarious auto-correct fails that often circulate around the internet, the autocorrect feature on smartphones is generally useful in increasing our texting productivity, and correcting embarrassing misspelled words before we send out important emails. This handy tool, in some cases, can even analyze the context by determining the recipient of messages, and suggest the most suitable alternatives.

So, what is the algorithm behind autocorrect? Could we build a simple autocorrect program?

The basic principles of autocorrect is to have a comprehenisive dictionary of words and colloquialisms that are often used in modern context. Given a word, it would try different sorts of revisions, such as deletion, transposition (swap too adjacent letters), a replacement, or an insertion.  For a word of length n, there will be n deletions, n-1 transpositions, 26n alterations, and 26(n+1) insertions, for a total of 54n+25 (Norvig). Because this approach would result in such a big set, the algorithm then ruled out all non-sensical words, using the built-in dictionary.

However, how could the program tell if “lates” should be corrected to “late”, “latest” or “lattes” (Norvig) ? What’s its secret to finding the most suitable correction? This is where math and probabilities came in. Let w be the word the user typed in, and c as the correction. The algorithm would analyze both the probability that c appears as a word of English text (ex: “the probability of “the” occuring in English text would be 7%), and the probability that w would be typed in a text when the author meant c (ex: the probability would be high for “teh” and “the”, but low for “theeezyx” and “the”) (Norvig). Then it would try to determine the word that has the highest combined probability. I would not go too deep into the calculations in this blog, but here is a thorough and relatively easy-to-understand explanation if you guys want to dig deeper into this. 

That is the basics of a simple autocorrect program. Most current autocorrection systems—including on the iPhone, Android, BlackBerry – also incorporate some kinds of learning behavior, and is constantly improving to meet users' need. Nevertheless, this technology still has  a lot of room to grow. Hopefully in the future, the occurences of autocorrect mishaps would decrease, and the algorithm might be able to predict full phrases or sentences that the users intend to type.


            Works Cited
Content:
http://norvig.com/spell-correct.html
http://www.slate.com/articles/technology/technology/2010/07/yes_ill_matty_you.html
Graphics
pirateprerogative.com. Dear AutoCorrect
DailyMails.co.uk. The Funniest Autocorrect Fails Sweeping Webs.