EM algorithm and GMM model

EM algorithm and GMM model

In statistics, EM (expectation maximization) algorithm handles latent variables, while GMM is the Gaussian mixture model. == Background == In the picture below, are shown the red blood cell hemoglobin concentration and the red blood cell volume data of two groups of people, the Anemia group and the control group (i.e. the group of people without Anemia). As expected, people with Anemia have lower red blood cell volume and lower red blood cell hemoglobin concentration than those without Anemia. x {\displaystyle x} is a random vector such as x := ( red blood cell volume , red blood cell hemoglobin concentration ) {\displaystyle x:={\big (}{\text{red blood cell volume}},{\text{red blood cell hemoglobin concentration}}{\big )}} , and from medical studies it is known that x {\displaystyle x} are normally distributed in each group, i.e. x ∼ N ( μ , Σ ) {\displaystyle x\sim {\mathcal {N}}(\mu ,\Sigma )} . z {\displaystyle z} is denoted as the group where x {\displaystyle x} belongs, with z i = 0 {\displaystyle z_{i}=0} when x i {\displaystyle x_{i}} belongs to the Anemia group and z i = 1 {\displaystyle z_{i}=1} when x i {\displaystyle x_{i}} belongs to the control group. Also z ∼ Categorical ⁡ ( k , ϕ ) {\displaystyle z\sim \operatorname {Categorical} (k,\phi )} where k = 2 {\displaystyle k=2} , ϕ j ≥ 0 , {\displaystyle \phi _{j}\geq 0,} and ∑ j = 1 k ϕ j = 1 {\displaystyle \sum _{j=1}^{k}\phi _{j}=1} . See Categorical distribution. The following procedure can be used to estimate ϕ , μ , Σ {\displaystyle \phi ,\mu ,\Sigma } . A maximum likelihood estimation can be applied: ℓ ( ϕ , μ , Σ ) = ∑ i = 1 m log ⁡ ( p ( x ( i ) ; ϕ , μ , Σ ) ) = ∑ i = 1 m log ⁡ ∑ z ( i ) = 1 k p ( x ( i ) ∣ z ( i ) ; μ , Σ ) p ( z ( i ) ; ϕ ) {\displaystyle \ell (\phi ,\mu ,\Sigma )=\sum _{i=1}^{m}\log(p(x^{(i)};\phi ,\mu ,\Sigma ))=\sum _{i=1}^{m}\log \sum _{z^{(i)}=1}^{k}p\left(x^{(i)}\mid z^{(i)};\mu ,\Sigma \right)p(z^{(i)};\phi )} As the z i {\displaystyle z_{i}} for each x i {\displaystyle x_{i}} are known, the log likelihood function can be simplified as below: ℓ ( ϕ , μ , Σ ) = ∑ i = 1 m log ⁡ p ( x ( i ) ∣ z ( i ) ; μ , Σ ) + log ⁡ p ( z ( i ) ; ϕ ) {\displaystyle \ell (\phi ,\mu ,\Sigma )=\sum _{i=1}^{m}\log p\left(x^{(i)}\mid z^{(i)};\mu ,\Sigma \right)+\log p\left(z^{(i)};\phi \right)} Now the likelihood function can be maximized by making partial derivative over μ , Σ , ϕ {\displaystyle \mu ,\Sigma ,\phi } , obtaining: ϕ j = 1 m ∑ i = 1 m 1 { z ( i ) = j } {\displaystyle \phi _{j}={\frac {1}{m}}\sum _{i=1}^{m}1\{z^{(i)}=j\}} μ j = ∑ i = 1 m 1 { z ( i ) = j } x ( i ) ∑ i = 1 m 1 { z ( i ) = j } {\displaystyle \mu _{j}={\frac {\sum _{i=1}^{m}1\{z^{(i)}=j\}x^{(i)}}{\sum _{i=1}^{m}1\left\{z^{(i)}=j\right\}}}} Σ j = ∑ i = 1 m 1 { z ( i ) = j } ( x ( i ) − μ j ) ( x ( i ) − μ j ) T ∑ i = 1 m 1 { z ( i ) = j } {\displaystyle \Sigma _{j}={\frac {\sum _{i=1}^{m}1\{z^{(i)}=j\}(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}}{\sum _{i=1}^{m}1\{z^{(i)}=j\}}}} If z i {\displaystyle z_{i}} is known, the estimation of the parameters results to be quite simple with maximum likelihood estimation. But if z i {\displaystyle z_{i}} is unknown it is much more complicated. Being z {\displaystyle z} a latent variable (i.e. not observed), with unlabeled scenario, the expectation maximization algorithm is needed to estimate z {\displaystyle z} as well as other parameters. Generally, this problem is set as a GMM since the data in each group is normally distributed. In machine learning, the latent variable z {\displaystyle z} is considered as a latent pattern lying under the data, which the observer is not able to see very directly. x i {\displaystyle x_{i}} is the known data, while ϕ , μ , Σ {\displaystyle \phi ,\mu ,\Sigma } are the parameter of the model. With the EM algorithm, some underlying pattern z {\displaystyle z} in the data x i {\displaystyle x_{i}} can be found, along with the estimation of the parameters. The wide application of this circumstance in machine learning is what makes EM algorithm so important. == EM algorithm in GMM == The EM algorithm consists of two steps: the E-step and the M-step. Firstly, the model parameters and the z ( i ) {\displaystyle z^{(i)}} can be randomly initialized. In the E-step, the algorithm tries to guess the value of z ( i ) {\displaystyle z^{(i)}} based on the parameters, while in the M-step, the algorithm updates the value of the model parameters based on the guess of z ( i ) {\displaystyle z^{(i)}} of the E-step. These two steps are repeated until convergence is reached. The algorithm in GMM is: Repeat until convergence: 1. (E-step) For each i , j {\displaystyle i,j} , set w j ( i ) := p ( z ( i ) = j | x ( i ) ; ϕ , μ , Σ ) {\displaystyle w_{j}^{(i)}:=p\left(z^{(i)}=j|x^{(i)};\phi ,\mu ,\Sigma \right)} 2. (M-step) Update the parameters ϕ j := 1 m ∑ i = 1 m w j ( i ) {\displaystyle \phi _{j}:={\frac {1}{m}}\sum _{i=1}^{m}w_{j}^{(i)}} μ j := ∑ i = 1 m w j ( i ) x ( i ) ∑ i = 1 m w j ( i ) {\displaystyle \mu _{j}:={\frac {\sum _{i=1}^{m}w_{j}^{(i)}x^{(i)}}{\sum _{i=1}^{m}w_{j}^{(i)}}}} Σ j := ∑ i = 1 m w j ( i ) ( x ( i ) − μ j ) ( x ( i ) − μ j ) T ∑ i = 1 m w j ( i ) {\displaystyle \Sigma _{j}:={\frac {\sum _{i=1}^{m}w_{j}^{(i)}\left(x^{(i)}-\mu _{j}\right)\left(x^{(i)}-\mu _{j}\right)^{T}}{\sum _{i=1}^{m}w_{j}^{(i)}}}} With Bayes' rule, the following result is obtained by the E-step: p ( z ( i ) = j | x ( i ) ; ϕ , μ , Σ ) = p ( x ( i ) | z ( i ) = j ; μ , Σ ) p ( z ( i ) = j ; ϕ ) ∑ l = 1 k p ( x ( i ) | z ( i ) = l ; μ , Σ ) p ( z ( i ) = l ; ϕ ) {\displaystyle p\left(z^{(i)}=j|x^{(i)};\phi ,\mu ,\Sigma \right)={\frac {p\left(x^{(i)}|z^{(i)}=j;\mu ,\Sigma \right)p\left(z^{(i)}=j;\phi \right)}{\sum _{l=1}^{k}p\left(x^{(i)}|z^{(i)}=l;\mu ,\Sigma \right)p\left(z^{(i)}=l;\phi \right)}}} According to GMM setting, these following formulas are obtained: p ( x ( i ) | z ( i ) = j ; μ , Σ ) = 1 ( 2 π ) n / 2 | Σ j | 1 / 2 exp ⁡ ( − 1 2 ( x ( i ) − μ j ) T Σ j − 1 ( x ( i ) − μ j ) ) {\displaystyle p\left(x^{(i)}|z^{(i)}=j;\mu ,\Sigma \right)={\frac {1}{(2\pi )^{n/2}\left|\Sigma _{j}\right|^{1/2}}}\exp \left(-{\frac {1}{2}}\left(x^{(i)}-\mu _{j}\right)^{T}\Sigma _{j}^{-1}\left(x^{(i)}-\mu _{j}\right)\right)} p ( z ( i ) = j ; ϕ ) = ϕ j {\displaystyle p\left(z^{(i)}=j;\phi \right)=\phi _{j}} In this way, a switch between the E-step and the M-step is possible, according to the randomly initialized parameters.

Data preprocessing

Data preprocessing can refer to manipulation, filtration or augmentation of data before it is analyzed, and is often an important step in the data mining process. Data collection methods are often loosely controlled, resulting in out-of-range values, impossible data combinations, and missing values, amongst other issues. Preprocessing is the process by which unstructured data is transformed into intelligible representations suitable for machine-learning models. This phase of model deals with noise in order to arrive at better and improved results from the original data set which was noisy. This dataset also has some level of missing value present in it. The preprocessing pipeline used can often have large effects on the conclusions drawn from the downstream analysis. Thus, representation and quality of data is necessary before running any analysis. If there is a high proportion of irrelevant and redundant information present or noisy and unreliable data, then knowledge discovery during the training phase may be more difficult. Data preparation and filtering steps can take a considerable amount of processing time. Examples of methods used in data preprocessing include cleaning, instance selection, normalization, one-hot encoding, data transformation, feature extraction and feature selection. == Applications == === Data mining === Data preprocessing allows for the removal of unwanted data with the use of data cleaning, this allows the user to have a dataset to contain more valuable information after the preprocessing stage for data manipulation later in the data mining process. Editing such dataset to either correct data corruption or human error is a crucial step to get accurate quantifiers like true positives, true negatives, false positives and false negatives found in a confusion matrix that are commonly used for a medical diagnosis. Users are able to join data files together and use preprocessing to filter any unnecessary noise from the data which can allow for higher accuracy. Users use Python programming scripts accompanied by the pandas library which gives them the ability to import data from a comma-separated values as a data-frame. The data-frame is then used to manipulate data that can be challenging otherwise to do in Excel. Pandas (software) which is a powerful tool that allows for data analysis and manipulation; which makes data visualizations, statistical operations and much more, a lot easier. Many also use the R programming language to do such tasks as well. The reason why a user transforms existing files into a new one is because of many reasons. Aspects of data preprocessing may include imputing missing values, aggregating numerical quantities and transforming continuous data into categories (data binning). More advanced techniques like principal component analysis and feature selection are working with statistical formulas and are applied to complex datasets which are recorded by GPS trackers and motion capture devices. === Semantic data preprocessing === Semantic data mining is a subset of data mining that specifically seeks to incorporate domain knowledge, such as formal semantics, into the data mining process. Domain knowledge is the knowledge of the environment the data was processed in. Domain knowledge can have a positive influence on many aspects of data mining, such as filtering out redundant or inconsistent data during the preprocessing phase. Domain knowledge also works as constraint. It does this by using working as set of prior knowledge to reduce the space required for searching and acting as a guide to the data. Simply put, semantic preprocessing seeks to filter data using the original environment of said data more correctly and efficiently. There are increasingly complex problems which are asking to be solved by more elaborate techniques to better analyze existing information. Instead of creating a simple script for aggregating different numerical values into a single value, it make sense to focus on semantic based data preprocessing. The idea is to build a dedicated ontology, which explains on a higher level what the problem is about. In regards to semantic data mining and semantic pre-processing, ontologies are a way to conceptualize and formally define semantic knowledge and data. The Protégé (software) is the standard tool for constructing an ontology. In general, the use of ontologies bridges the gaps between data, applications, algorithms, and results that occur from semantic mismatches. As a result, semantic data mining combined with ontology has many applications where semantic ambiguity can impact the usefulness and efficiency of data systems. Applications include the medical field, language processing, banking, and even tutoring, among many more. There are various strengths to using a semantic data mining and ontological based approach. As previously mentioned, these tools can help during the per-processing phase by filtering out non-desirable data from the data set. Additionally, well-structured formal semantics integrated into well designed ontologies can return powerful data that can be easily read and processed by machines. A specifically useful example of this exists in the medical use of semantic data processing. As an example, a patient is having a medical emergency and is being rushed to hospital. The emergency responders are trying to figure out the best medicine to administer to help the patient. Under normal data processing, scouring all the patient’s medical data to ensure they are getting the best treatment could take too long and risk the patients’ health or even life. However, using semantically processed ontologies, the first responders could save the patient’s life. Tools like a semantic reasoner can use ontology to infer the what best medicine to administer to the patient is based on their medical history, such as if they have a certain cancer or other conditions, simply by examining the natural language used in the patient's medical records. This would allow the first responders to quickly and efficiently search for medicine without having worry about the patient’s medical history themselves, as the semantic reasoner would already have analyzed this data and found solutions. In general, this illustrates the incredible strength of using semantic data mining and ontologies. They allow for quicker and more efficient data extraction on the user side, as the user has fewer variables to account for, since the semantically pre-processed data and ontology built for the data have already accounted for many of these variables. However, there are some drawbacks to this approach. Namely, it requires a high amount of computational power and complexity, even with relatively small data sets. This could result in higher costs and increased difficulties in building and maintaining semantic data processing systems. This can be mitigated somewhat if the data set is already well organized and formatted, but even then, the complexity is still higher when compared to standard data processing. Below is a simple a diagram combining some of the processes, in particular semantic data mining and their use in ontology. The diagram depicts a data set being broken up into two parts: the characteristics of its domain, or domain knowledge, and then the actual acquired data. The domain characteristics are then processed to become user understood domain knowledge that can be applied to the data. Meanwhile, the data set is processed and stored so that the domain knowledge can applied to it, so that the process may continue. This application forms the ontology. From there, the ontology can be used to analyze data and process results. Fuzzy preprocessing is another, more advanced technique for solving complex problems. Fuzzy preprocessing and fuzzy data mining make use of fuzzy sets. These data sets are composed of two elements: a set and a membership function for the set which comprises 0 and 1. Fuzzy preprocessing uses this fuzzy data set to ground numerical values with linguistic information. Raw data is then transformed into natural language. Ultimately, fuzzy data mining's goal is to help deal with inexact information, such as an incomplete database. Currently fuzzy preprocessing, as well as other fuzzy based data mining techniques see frequent use with neural networks and artificial intelligence.

Procedural reasoning system

In artificial intelligence, a procedural reasoning system (PRS) is a framework for constructing real-time reasoning systems that can perform complex tasks in dynamic environments. It is based on the notion of a rational agent or intelligent agent using the belief–desire–intention software model. A user application is predominately defined, and provided to a PRS system is a set of knowledge areas. Each knowledge area is a piece of procedural knowledge that specifies how to do something, e.g., how to navigate down a corridor, or how to plan a path (in contrast with robotic architectures where the programmer just provides a model of what the states of the world are and how the agent's primitive actions affect them). Such a program, together with a PRS interpreter, is used to control the agent. The interpreter is responsible for maintaining beliefs about the world state, choosing which goals to attempt to achieve next, and choosing which knowledge area to apply in the current situation. How exactly these operations are performed might depend on domain-specific meta-level knowledge areas. Unlike traditional AI planning systems that generate a complete plan at the beginning, and replan if unexpected things happen, PRS interleaves planning and doing actions in the world. At any point, the system might only have a partially specified plan for the future. PRS is based on the BDI or belief–desire–intention framework for intelligent agents. Beliefs consist of what the agent believes to be true about the current state of the world, desires consist of the agent's goals, and intentions consist of the agent's current plans for achieving those goals. Furthermore, each of these three components is typically explicitly represented somewhere within the memory of the PRS agent at runtime, which is in contrast to purely reactive systems, such as the subsumption architecture. == History == The PRS concept was developed by the Artificial Intelligence Center at SRI International during the 1980s, by many workers including Michael Georgeff, Amy L. Lansky, and François Félix Ingrand. Their framework was responsible for exploiting and popularizing the BDI model in software for control of an intelligent agent. The seminal application of the framework was a fault detection system for the reaction control system of the NASA Space Shuttle Discovery. Development on this PRS continued at the Australian Artificial Intelligence Institute through to the late 1990s, which led to the development of a C++ implementation and extension called dMARS. == Architecture == The system architecture of SRI's PRS includes the following components: Database for beliefs about the world, represented using first order predicate calculus. Goals to be realized by the system as conditions over an interval of time on internal and external state descriptions (desires). Knowledge areas (KAs) or plans that define sequences of low-level actions toward achieving a goal in specific situations. Intentions that include those KAs that have been selected for current and eventual execution. Interpreter or inference mechanism that manages the system. == Features == SRI's PRS was developed for embedded application in dynamic and real-time environments. As such it specifically addressed the limitations of other contemporary control and reasoning architectures like expert systems and the blackboard system. The following define the general requirements for the development of their PRS: asynchronous event handling guaranteed reaction and response types procedural representation of knowledge handling of multiple problems reactive and goal-directed behavior focus of attention reflective reasoning capabilities continuous embedded operation handling of incomplete or inaccurate data handling of transients modeling delayed feedback operator control == Applications == The seminal application of SRI's PRS was a monitoring and fault detection system for the reaction control system (RCS) on the NASA space shuttle. The RCS provides propulsive forces from a collection of jet thrusters and controls altitude of the space shuttle. A PRS-based fault diagnostic system was developed and tested using a simulator. It included over 100 KAs and over 25 meta level KAs. RCS specific KAs were written by space shuttle mission controllers. It was implemented on the Symbolics 3600 Series LISP machine and used multiple communicating instances of PRS. The system maintained over 1000 facts about the RCS, over 650 facts for the forward RCS alone and half of which are updated continuously during the mission. A version of the PRS was used to monitor the reaction control system on the Space Shuttle Discovery. PRS was tested on Shakey the robot including navigational and simulated jet malfunction scenarios based on the space shuttle. Later applications included a network management monitor called the Interactive Real-time Telecommunications Network Management System (IRTNMS) for Telecom Australia. == Extensions == The following list the major implementations and extensions of the PRS architecture. UM-PRS OpenPRS (formerly C-PRS and Propice) AgentSpeak Distributed multi-agent reasoning system (dMARS) GORITE JAM JACK Intelligent Agents SRI Procedural Agent Realization Kit (SPARK) PRS-CL

Angel F

Angel_F is a fictional child artificial intelligence that has been used in art performances worldwide focused on the issues of digital liberties, intellectual property and on the evolution of language and behaviour in information society. The character was created by Salvatore Iaconesi in 2007 as a hack to the Biodoll art performance by Italian artist Franca Formenti. The project was later joined by Oriana Persico who curated communication and part of the theoretical approaches of the action. The Angel_F project has been featured in books, magazines, national televisions, and has been invited to many conferences and events, both academic and artistic. == Creation == Angel_F is a backronym which stands for Autonomous Non Generative E-volitive Life_Form. The project was born in 2007 and resulted from the fusion of two contemporary art performances. Franca Formenti, an Italian artist living in Varese, invented the Biodoll character in 2002, which began making its appearances first on the network and later in the physical world by using what were called "clones": young women, prostitutes, pornographic starlets, transsexuals and models interpreting the role of a digital prostitute. The Biodoll was an art performance focused on research emerging from the network of new forms of sexualities, and on the analysis of changes brought on by this transformation to the concepts of private and public spaces, privacy, and the possibility of creating multiple fluid identities through language and digital media. The theme of fertility has always been central to the Biodoll performance: the digital prostitute was a wombless clone but desired giving birth to a son, the 'Bloki'. In a process starting in 2006, and ending in February 2007, Salvatore Iaconesi (xDxD.vs.xDxD) used his 'Talker' linguistic artificial intelligence to animate the digital child conceived with prof. Derrick de Kerckhove: Angel_F. Iaconesi and Persico met in November 2006 and immediately started collaborating on the birth of Angel_F. Angel_F was designed as a synthetic digital being composed through narrative, technological and cognitive psychology layers. The objective was to create iconic characteristics that resulted in being evocative and able to mimic human life up to a level in which bringing up a symbolic dialogue was possible. On the other side, the artificial identity was to implement and expose the cultural, emotional and relational ways that were typical of networked social ecosystems, among those technologies, systems and infrastructures that entered and shaped people's daily lives. The young digital being mimicked the evolution of a human baby: initially conceived inside the website of its digital mother it emulated the birth of a child by using the metaphor of a virus developing inside a website, taking progressively more space in the domain's databases and interfaces. Content was produced through the software by using small browser-based spyware techniques, through which Angel_F could infer the list of major portals that had been visited by the website's users. The Biodoll website was invaded by this growing presence and, thus, Angel_F was born. The Artificial Intelligence (AI) component of Angel_F was derived from another project, Talker, through which internet users could build up the AI's linguistic network by feeding it their text and web clips. Angel_F used this component to generate sentences and phrases, publishing them on the interface and on selected blogs. The parallel between the growth of the AI and that of a child kept building up and, just as children learn how to speak and act by observing their parents and the people around them, Angel_F used its spyware and AI components to learn, to navigate websites and web portals using web crawler based techniques, and to interact with other people by using the contents hosted and generated in its database to create surreal dialogues in blogs and websites. A virtual school was created, called Talker Mind, to narratively continue the AI's growth. Five professors (Massimo Canevacci, Antonio Caronia, Carlo Formenti, Derrick de Kerckhove and Luigi Pagliarini) fed their texts and academic articles to Angel_F, simulating virtual asynchronous lessons by using a multi-blog structure. A peer-to-peer system was also created at the time, named 'Presence'. Its interface resembled the one of 8-bit videogames and the peer to peer users travelled in a starry space and were able to perform standard Instant Messaging tasks, such as chat and file sharing. The interactions were possible both among humans and digital beings. Angel_F was the first user of the Presence peer to peer system. Angel_F entered the physical world as a baby-stroller mounted laptop computer that was used to let the digital child join events and conferences held worldwide. == Events == Angel_F performed all over the world, both in artistic contexts and in academic ones. It was also used for the communication strategy of several activist groups on the themes of intellectual property and digital freedoms. The first public space performance was held in Milan, when the Biodoll distributed a generative free press publication (called the Bloki FreePreXXX, its text was generated algorithmically and inserted into a prepared graphic layout). June 14, 2007: The second performance was held in Rome, at the Forte Prenestino, with a massive playroom created through computational graphics that people could interact with and that were generated by the AI. June 22, 2007: Angel_F presented the closing remarks for an Ipotesi per Assurdo (Absurd Hypothesis) with Salvatore Iaconesi and Oriana Persico at the IULM University in Milan, discussing the possibilities for an ecosystemic, sustainable reinvention of corporations. July 28, 2007: Hundreds of people at LiberaFesta (Free Party) in Rome listened to Angel_F in a speech discussing new politics and hacker ethics. 2007: The Glocal & Outsiders conference held in Prague at the Academy of Sciences was the first academic presentation of the Angel_F project, together with the Biodoll. September 2007: Angel_F was not allowed to post its contribution to the DFIR (Dialogue Forum for Internet Rights) held in Rome in preparation for Rio de Janeiro's Internet Governance Forum (IGF) edition. The case quickly turned into a collaboration among the involved parties and Angel_F was invited to the global event in Brazil where it was the only digital being present. Angel_F contributed a videomessage, in the digital freedoms workshop, which suggested some ideas for action to the United Nations and to all the parties involved in the IGF organization. October 2007: Angel_F was presented live at the FE/MALE 2 event, as an example of an atypical family during a public debate on new sexualities and social change. October 2007: Angel_F made a series of public performances Florence's Festival della Creatività (Festival of Creativity), an institutional event held periodically to showcase Italy's and other countries' best technological projects. During the festival Derrick de Kerckhove publicly recognized the little AI as his digital son. December 2007: Several international associations, and scientific researchers had been involved with Angel_F, eventually producing the system and process used to set up the Talker Mind digital school for the AI with Angel_F's professors. March 2008: The Tecnológico de Monterrey university in Mexico City organized the Computer Art Congress 2 international event, featuring Angel_F's project among with the ones by scientific researchers worldwide. July 2008: The project was presented in Austria at the Planetary Collegium's Consciousness Reframed 9 conference, together with the 'NeoRealismo Virtuale'. October 2008: Angel_F was used at a public event on a European scale called Freedom not Fear discussing privacy and civil liberties. July 2009: Angel_F has been seen with its digital father Derrick de Kerckhove to protest against Italy's harsh politics on freedom of speech. The project concluded in 2009 with the publication of a book entitled 'Angel F. Diario di una intelligenza artificiale' (Angel_F, the diaries of an Artificial Intelligence).

Jailbreak (computer science)

In computer security, jailbreaking is defined as the act of removing limitations that a vendor attempted to hard-code or hard-wire into its hardware and/or software. It is a form of privilege escalation. The term may have originated with the use of toolsets to break out of a chroot or jail in UNIX-like operating systems. This allowed the user to see files outside of the file system that the administrator intended to make available to the application or user in question. The term was first used in its modern meaning in the iPhone/iOS jailbreaking community and has also been used as a term for PlayStation Portable hacking; these devices have repeatedly been subject to jailbreaks, allowing the execution of arbitrary code, and sometimes have had those jailbreaks disabled by vendor updates, especially in the case of iOS devices. == iOS jailbreaking == iOS systems including the iPhone, iPad, and iPod Touch have been subject to iOS jailbreaking efforts since they were released, and continuing with each firmware update. iOS jailbreaking tools have included the option to install package frontends such as Cydia and Installer.app, third-party alternatives to the App Store, as a way to find and install system tweaks and binaries. To prevent iOS jailbreaking, Apple has made the device boot ROM execute checks for SHSH blobs in order to disallow uploads of custom kernels and prevent software downgrades to earlier, jailbreakable firmware. In an "untethered" jailbreak, the iBoot environment is changed to execute a boot ROM exploit and allow submission of a patched low level bootloader or hack the kernel to submit the jailbroken kernel after the SHSH check. == Other phones == A similar method of jailbreaking exists for S60 Platform smartphones, where utilities such as HelloOX allow the execution of unsigned code and full access to system files. or edited firmware (similar to the M33 hacked firmware used for the PlayStation Portable) to circumvent restrictions on unsigned code. Nokia has since issued updates to curb unauthorized jailbreaking, in a manner similar to Apple. Rooting is the equivalent concept for Android phones and other devices. == Console jailbreaking == In the case of gaming consoles, jailbreaking is often used to execute homebrew games. In 2011, Sony, with assistance from law firm Kilpatrick Stockton, sued 21-year-old George Hotz and associates of the group fail0verflow for jailbreaking the PlayStation 3 (see Sony Computer Entertainment America v. George Hotz and PlayStation Jailbreak). == AI jailbreaks == Jailbreaking can also occur in systems and software that use generative artificial intelligence models, such as ChatGPT. In jailbreaking attacks on artificial intelligence systems, users are able to manipulate the system to behave differently than it was intended, making it possible to reveal information about how the model was instructed by the vendor (the "system prompt") or to induce it to respond in an anomalous or harmful way. These attacks typically simply require prompting the AIs with specific phrasal templates - no software is typically required, although software could theoretically be used to "industrialise" such exploits, and some research has been done in this direction. In 2024, a consortium of AI firms founded HackAPrompt.com, a competition to encourage users to find new and effective AI jailbreaking techniques. These and other findings from "ethical hackers" have been used by AI model providers to try to improve AI safety.

FedRAMP

The Federal Risk and Authorization Management Program (FedRAMP) is a United States federal government-wide compliance program that provides a standardized approach to security assessment, authorization, and continuous monitoring for cloud products and services. The US government describes FedRAMP as FISMA for the cloud. == Overview == The FedRAMP PMO mission is to promote the adoption of secure cloud services across the federal government by providing a standardized approach to security and risk assessment. Per the OMB memorandum, any cloud services that hold federal data must be FedRAMP authorized. FedRAMP prescribes the security requirements and processes that cloud service providers must follow in order for the government to use their service. There are two ways to authorize a cloud service through FedRAMP: a Joint Authorization Board (JAB) provisional authorization (P-ATO), and through individual agencies. FedRAMP provides accreditation for cloud services for the various cloud offering models which are Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service, (SaaS). == History == In 2011, the Office of Management and Budget (OMB) released a memorandum establishing FedRAMP "to provide a cost-effective, risk-based approach for the adoption and use of cloud services to Executive departments and agencies." The General Services Administration (GSA) established the FedRAMP Program Management Office (PMO) in June 2012. Before the introduction of FedRAMP, individual federal agencies managed their own assessment methodologies following guidance set by the Federal Information Security Management Act of 2002. == Governance and applicable laws == FedRAMP is governed by different Executive Branch entities that collaborate to develop, manage, and operate the program. These entities include: The Office of Management and Budget (OMB): The governing body that issued the FedRAMP policy memo, which defines the key requirements and capabilities of the program The Joint Authorization Board (JAB): The primary governance and decision-making body for FedRAMP comprises the chief information officers (CIOs) from the Department of Homeland Security (DHS), General Services Administration (GSA), and Department of Defense (DOD) The National Institute of Standards and Technology (NIST): Advises FedRAMP on FISMA compliance requirements and assists in developing the standards for the accreditation of independent 3PAOs The Department of Homeland Security (DHS): Manages the FedRAMP continuous monitoring strategy including data feed criteria, reporting structure, threat notification coordination, and incident response The Federal Chief Information Officers (CIO) Council: Disseminates FedRAMP information to Federal CIOs and other representatives through cross-agency communications and events The FedRAMP PMO: Established within GSA and responsible for the development of the FedRAMP program, including the management of day-to-day operations There are several laws, mandates, and policies that are foundational to FedRAMP. FISMA–the Federal Information Security Modernization Act–requires that agencies authorize the information systems that they use. The US government describes FedRAMP as FISMA for the cloud. The FedRAMP Policy Memo requires federal agencies to use FedRAMP when assessing, authorizing, and continuously monitoring cloud services in order to aid agencies in the authorization process as well as save government resources and eliminate duplicative efforts. FedRAMP's security baselines are derived from NIST SP 800-53 (as revised) with a set of control enhancements that pertain to the unique security requirements of cloud computing. == Third-party assessment organizations == Third-party assessment organizations (3PAOs) play a critical role in the FedRAMP security assessment process, as they are the independent assessment organizations that verify cloud providers' security implementations and provide the overall risk posture of a cloud environment for a security authorization decision. Accredited by the American Association for Laboratory Accreditation (A2LA), these assessment organizations must demonstrate independence and the technical competence required to test security implementations and collect representative evidence. == FedRAMP Marketplace == The FedRAMP Marketplace provides a searchable, sortable database of Cloud Service Offerings (CSOs) that have achieved a FedRAMP designation. 3PAOs, accredited auditors that can perform the FedRAMP assessment, are listed within the Marketplace. The FedRAMP Marketplace is maintained by the FedRAMP Program Management Office (PMO). == Security and authorization concerns == A 2026 ProPublica investigation found that FedRAMP entered into a partnership with Microsoft despite considerable concerns about the security of its cloud technology.

Comet (browser)

Comet is an AI-powered web browser based on Chromium. It was released by Perplexity AI for Microsoft Windows and macOS on July 9, 2025, for Android on November 20, 2025, and for iOS on March 18, 2026. Initial access to the browser was limited to users subscribed to Perplexity's most expensive tier, with broader availability expected over time. The browser was released for free download in October 2025. == Features == Comet is integrated with Perplexity's AI-assisted search engine. The browser features an assistant which enables users to perform a variety of tasks such as generating article summaries, sending emails, or buying products. == Security concerns == Researchers at LayerX Security identified a malicious attack vector which they call CometJacking. The exploit could possibly exfiltrate a user's personal sensitive data to a remote server controlled by the attacker. LayerX attempted to responsibly disclose their findings to Comet's developer Perplexity AI in August 2025. Perplexity responded that they saw no security impact and marked the disclosure as not applicable.