AI Chatbot Addiction Reddit

AI Chatbot Addiction Reddit — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Rapid application development

    Rapid application development

    Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even instead of design specifications. RAD is especially well suited for (although not limited to) developing software that is driven by user interface requirements. Graphical user interface builders are often called rapid application development tools. Other approaches to rapid development include the adaptive, agile, spiral, and unified models. == History == Rapid application development was a response to plan-driven waterfall processes, developed in the 1970s and 1980s, such as the Structured Systems Analysis and Design Method (SSADM). One of the problems with these methods is that they were based on a traditional engineering model used to design and build things like bridges and buildings. Software is an inherently different kind of artifact. Software can change the process used to solve a problem. As a result, knowledge gained from the development process itself can feed back to the requirements and design of the solution. Plan-driven approaches attempt to define requirements, the solution, and the implementation plan, and have a process that discourages changes. RAD approaches, on the other hand, recognize that software development is a knowledge intensive process and provide flexible processes that help take advantage of knowledge gained during the project to improve or adapt the solution. The first such RAD alternative was developed by Barry Boehm and was known as the spiral model. Boehm and other subsequent RAD approaches emphasized developing prototypes as well as or instead of rigorous design specifications. Prototypes had several advantages over traditional specifications: Risk reduction. A prototype could test some of the most difficult potential parts of the system early on in the life-cycle. This can provide valuable information as to the feasibility of a design and can prevent the team from pursuing solutions that turn out to be too complex or time-consuming to implement. This benefit of finding problems earlier in the life-cycle rather than later was a key benefit of the RAD approach. The earlier a problem can be found the cheaper it is to address. Users are better at using and reacting than at creating specifications. In the waterfall model it was common for a user to sign off on a set of requirements but then when presented with an implemented system to suddenly realize that a given design lacked some critical features or was too complex. In general most users give much more useful feedback when they can experience a prototype of the running system rather than abstractly define what that system should be. Prototypes can be usable and can evolve into the completed product. One approach used in some RAD methods was to build the system as a series of prototypes that evolve from minimal functionality to moderately useful to the final completed system. The advantage of this besides the two advantages above was that the users could get useful business functionality much earlier in the process. Starting with the ideas of Barry Boehm and others, James Martin developed the rapid application development approach during the 1980s at IBM and finally formalized it by publishing a book in 1991, Rapid Application Development. This has resulted in some confusion over the term RAD even among IT professionals. It is important to distinguish between RAD as a general alternative to the waterfall model and RAD as the specific method created by Martin. The Martin method was tailored toward knowledge intensive and UI intensive business systems. These ideas were further developed and improved upon by RAD pioneers like James Kerr and Richard Hunter, who together wrote the seminal book on the subject, Inside RAD, which followed the journey of a RAD project manager as he drove and refined the RAD Methodology in real-time on an actual RAD project. These practitioners, and those like them, helped RAD gain popularity as an alternative to traditional systems project life cycle approaches. The RAD approach also matured during the period of peak interest in business re-engineering. The idea of business process re-engineering was to radically rethink core business processes such as sales and customer support with the new capabilities of Information Technology in mind. RAD was often an essential part of larger business re engineering programs. The rapid prototyping approach of RAD was a key tool to help users and analysts "think out of the box" about innovative ways that technology might radically reinvent a core business process. Much of James Martin's comfort with RAD stemmed from Dupont's Information Engineering division and its leader Scott Schultz and their respective relationships with John Underwood who headed up a bespoke RAD development company that pioneered many successful RAD projects in Australia and Hong Kong. Successful projects that included ANZ Bank, Lendlease, BHP, Coca-Cola Amatil, Alcan, Hong Kong Jockey Club and numerous others. Success that led to both Scott Shultz and James Martin both spending time in Australia with John Underwood to understand the methods and details of why Australia was disproportionately successful in implementing significant mission critical RAD projects. == James Martin approach == The James Martin approach to RAD divides the process into four distinct phases: Requirements planning phase – combines elements of the system planning and systems analysis phases of the systems development life cycle (SDLC). Users, managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements. It ends when the team agrees on the key issues and obtains management authorization to continue. User design phase – during this phase, users interact with systems analysts and develop models and prototypes that represent all system processes, inputs, and outputs. The RAD groups or subgroups typically use a combination of joint application design (JAD) techniques and CASE tools to translate user needs into working models. User design is a continuous interactive process that allows users to understand, modify, and eventually approve a working model of the system that meets their needs. Construction phase – focuses on program and application development task similar to the SDLC. In RAD, however, users continue to participate and can still suggest changes or improvements as actual screens or reports are developed. Its tasks are programming and application development, coding, unit-integration and system testing. Cutover phase – resembles the final tasks in the SDLC implementation phase, including data conversion, testing, changeover to the new system, and user training. Compared with traditional methods, the entire process is compressed. As a result, the new system is built, delivered, and placed in operation much sooner. == Advantages == In modern Information Technology environments, many systems are now built using some degree of Rapid Application Development (not necessarily the James Martin approach). In addition to Martin's method, agile methods and the Rational Unified Process are often used for RAD development. The purported advantages of RAD include: Better quality. By having users interact with evolving prototypes the business functionality from a RAD project can often be much higher than that achieved via a waterfall model. The software can be more usable and has a better chance to focus on business problems that are critical to end users rather than technical problems of interest to developers. However, this excludes other categories of what are usually known as Non-functional requirements (AKA constraints or quality attributes) including security and portability. Risk control. Although much of the literature on RAD focuses on speed and user involvement a critical feature of RAD done correctly is risk mitigation. It's worth remembering that Boehm initially characterized the spiral model as a risk based approach. A RAD approach can focus in early on the key risk factors and adjust to them based on empirical evidence collected in the early part of the process. E.g., the complexity of prototyping some of the most complex parts of the system. More projects completed on time and within budget. By focusing on the development of incremental units the chances for catastrophic failures that have dogged large waterfall projects is reduced. In the Waterfall model it was common to come to a realization after six months or more of analysis and development that required a radical rethinking of the entire system. With RAD this kind of information can be discovered and acted upon earlier in the proces

    Read more →
  • The Sword in the Stoned

    The Sword in the Stoned

    "The Sword in the Stoned" is the fifth episode of the second season of the American fantasy comedy television series Ted. Written by Julius Sharpe, and directed by Seth MacFarlane, it premiered on the American streaming service Peacock, along with the rest of season two, on March 5, 2026. The series acts as a precursor to the Ted film franchise, showcasing the childhood lives of the protagonists. The series, set in 1994, focuses on John Bennett (Max Burkholder), the series' primary protagonist, an awkward high-school aged boy; along with Ted (MacFarlane), the series' titular anthropomorphic teddy bear. The two live with John's family, Susan (Alanna Ubach), his mild mannered mother, and Matty (Scott Grimes), his conservative father. Also residing with the family is Blaire (Giorgia Whigham), his radically liberal cousin whom often clashes with Matty. In the episode, Ted and John join the school play so they can have more extracurricular activities for their college applications, but the latter grows a connection with the school's popular teenager, Erin (Francesca Xuereb). Concurrently, Susan and Matty get a job at Dunkin' Donuts to help with their financial troubles, and Matty is given an opportunity to tell off Bill Clinton. Burkholder wore prop armor during the episode's play scenes. Bill Clinton’s appearance in the episode was portrayed by MacFarlane. After conventional makeup and visual techniques failed to convincingly resemble Clinton, the production used artificial intelligence to digitally replace MacFarlane's face with Clinton's likeness. Upon release, the episode received generally positive reviews from critics, though the use of AI in the Clinton scene was polarizing among audiences and reviewers. == Plot == John tells Ted that he is the last single guy left at their school, to which Ted points out the popular, single cheerleader, Erin, but John dismisses this. At home, Blaire tells John that he needs extracurricular activities to get into college, while Susan and Matty discuss their financial troubles, especially regarding John's college tuition. Looking over their options, they decide to audition for a school production of the play Camelot. Matty takes a job at Dunkin' Donuts, despite being told that nobody will give him a tip, and having to wear an incorrect name tag. Waiting for their auditions, John and Ted watch several poor auditions for the play before seeing Erin's, who delivers a flawless performance; John and Ted do less serious auditions, getting cast as knights, while Erin gets the role of Guinevere. Matty complains about his low salary, and Susan decides to get a job at Dunkin' Donuts beside him to help earn more income. Erin clashes with Lancelot's actor while rehearsing, and John compliments her performance, which she ignores, but, seeing Ted and John give good performances in a repetition exercise, she becomes interested in him, particularly since he treats her better than her stage-partner. Matty and Susan watch an employee training video, explaining how they should treat customers politely, not affecting Matty's nihilistic attitude. The manager announces that Bill Clinton is visiting their Dunkin' Donuts for publicity, and Matty sees this as a chance to tell Bill off. John and Erin practice lines, as she reveals the show is being taped so it can be sent to Emerson College in hopes of her getting in; Erin asks John to go out with her after the show. At dinner, Matty enthusiastically reveals what he plans to tell Bill, as John becomes stressed about the play when Susan tells there will be a large audience. Bill comes to the Dunkin' Donuts, and, seeing Matty is nervously insulting him, stages a private meeting with him, where Bill yells at Matty, calling him a loser before posing for a picture with Matty and subsequently throwing the cold coffee onto him. To ease the pressure, Ted and John take edibles from Blaire, but learn at the show that they contained mushrooms, causing them to stress further. On stage, Ted and John yell nervously that they're on drugs as the latter urinates in his costume, causing Erin to angrily storm off. == Production == "The Sword in the Stoned" was directed by series creator and lead Seth MacFarlane, and written by Julius Sharpe in his third and final writing credit for the series. When Ted and John are doing repetition exercises, they tackle each other to the ground, which required a stuntman named Ashton to play the role of Ted, according to Max Burkholder, who portrays John. Burkholder also recalled that, when Ted was choking John in the scene, he kept making a noise during the choking, which made Bill, the cameraman, laugh, despite being a "stone face" that never laughs, noting that seeing him be amused by the noise he was making assured Burkholder that what he was doing was "hilarious". Burkholder found the filming of the play scenes "weird", as he was put in fake armor with a hose inside his suit—which was filled with water mixed with yellow food coloring—that was made to create the urine stream that comes out of John's armor in the episode; he also noted that it took around 45 minutes to put on and take off the armor. He revealed that he himself had to urinate during the filming, as doing a scene about a character having to do so "really [broke] my brain", with the fact that it took 45 minutes to get the suit off adding to the frustration. Jennifer Ashley Connell, who worked for wardrobe, had to repeatedly go to Burkholder quickly between takes to dry off his pants with two hair dryers to make it look like the fake urine hadn't already streamed down his pants, so they could get as many shots of it as possible. Francesca Xuereb guest stars in the episode as Erin, the cheerleader who stars in the play. Incumbent president Bill Clinton was portrayed by MacFarlane, with artificial intelligence (AI) being used to digitally make MacFarlane's face look like Clinton's during post-production. Before settling on AI, the crew tried to use traditional computer-generated imagery and prosthetics, which made him look "terrifying", resulting in them deciding that AI would give them a more accurate look. One of the original technologies considered was one where, after scanning MacFarlane, a mesh of his head was created, and they had to use computer graphics to replace MacFarlane's face with Clinton's. An issue was faced, however, when they found the archival footage used as reference from the Clinton Library—an official Presidential Library containing information related to Clinton—to be extremely low-quality, making it hard to properly emulate his face, since only still images were of acceptable quality, and there weren't references of his moving face to work off of. A forensic artist was hired to help with this, and they created a 3D model of Clinton's head in ZBrush, based off of his presidential portrait. The model head worked for still frames, but movement was still difficult to do realistically, due to it being made for a "single-point perspective", which made details like the cheekbones or other minor issues more noticeable when using it for the scene. Since this did not work, AI was ultimately chosen through the studio Deep Voodoo, which used large language models to teach the tool how to correctly replicate Clinton's appearance. Defending the episode's use of AI, MacFarlane noted that the crew did not want people to focus on the tool being used, trying to utilize it in a way that wouldn't distract from the humor and narrative. Like the rest of the series, the episode was shot using ViewScreen; MacFarlane was able to act live with the cast as Ted due to ViewScreen, a technology that allows the production crew to visualize what Ted will look like in each scene in real time. == Release and reception == "The Sword in the Stoned" was first released on March 5, 2026, on the American streaming service Peacock, along with the rest of the second season. Nate Richards of Collider highlighted the Dunkin' Donuts subplot as an example of Scott Grimes delivering a "lot of laughs" through his performance as Matty. Dustin Rowles of Pajiba called "The Sword in the Stoned" one of the season's many episodes he'd recommend, particularly for the scenes of Ted and John being high on mushrooms during the play. Oppositely, Nick Valdez of ComicBook.com ranked the episode as the worst of the second season, criticizing it for not having a "huge impact" on the Bennett family dynamic like other episodes of the season do, and Susan and Matty's side story as the main reason he felt it was "[kept] from being great". Valdez noted the episode for likely being an advertisement for Dunkin' Donuts, calling the plot's ending scene involving Clinton the reason "it just all sticks out like a sore thumb". === Response to AI usage === The episode's use of AI for MacFarlane's portrayal of Clinton proved controversial, mainly on social media, where audiences asserted that the crew should have gotten an actor that resembl

    Read more →
  • Resistance Database Initiative

    Resistance Database Initiative

    HIV Resistance Response Database Initiative (RDI) was formed in 2002 to use artificial intelligence (AI) to predict how patients will respond to HIV drugs using data from more 250,000 patients from around 50 countries around the world. The RDI used its models to power its HIV Treatment Response Prediction System (HIV-TRePS). Launched in 2010, this free online tool enabled healthcare professionals to upload their patient’s data and obtain highly accurate predictions of how they would respond to different combinations of the 30 or more drugs available. The tool enabled physicians to individualize their patients’ treatment, using these predictions based on more than a million patient-years of treatment experience. HIV-TRePS was possibly the first ever AI-based system for medical decision-making to be developed, successfully tested, and used in clinical practice. It has since been used by thousands of healthcare professionals to optimise the treatment of tens of thousands of patients. Since the RDI’s inception the treatment of HIV infection has progressed enormously, with more effective and better tolerated drugs available in ever more convenient combination formulations. In most countries HIV is now considered a chronic, manageable condition. Moreover, the success of the drugs in reducing the amount of virus is substantially reducing the onward transmission of the virus and cases of new infections are falling in many settings. This improvement in HIV treatment means the need for sophisticated AI to support HIV treatment decisions has significantly reduced. In response, the RDI ceased development of further models and, in March 2024, withdrew its HIV-TRePS system. == Background == Human immunodeficiency virus (HIV) is the virus that causes acquired immunodeficiency syndrome (AIDS), a condition in which the immune system begins to fail, leading to life-threatening opportunistic infections. There are approximately 30 HIV antiretroviral drugs that have been approved for the treatment of HIV infection, from six different classes, based on the point in the HIV life-cycle at which they act. They are used in combination; typically 3 or more drugs from 2 or more different classes, a form of therapy known as highly active antiretroviral therapy (HAART). The aim of therapy is to suppress the virus to very low, ideally undetectable, levels in the blood. This prevents the virus from depleting the immune cells that it preferentially attacks CD4 cells and prevents or delays illness and death. Despite the expanding availability of these drugs and the impact of their use, treatments continue to fail, often involving to the development of resistance. During drug therapy, low-level virus replication may still occur, particularly when a patient misses a dose. HIV makes errors in copying its genetic material and, if a mutation makes the virus resistant to one or more of the drugs in the patient's treatment, it may begin to replicate more successfully in the presence of that drug and undermine the effect of the treatment. If this happens, the treatment needs to be changed to re-establish control over the virus. == RDI's Approach == The RDI’s approach was to use artificial intelligence (including neural network and random forest models), trained with data from hundreds of thousands of patients, treated with different drugs in a variety of clinical settings all over the world, to predict how an individual patient will respond to any new combination of HIV drugs. The models were tested with independent data sets and consistently achieved accuracy of approximately 80%.

    Read more →
  • The Quantum Thief

    The Quantum Thief

    The Quantum Thief is the debut science fiction novel by Finnish writer Hannu Rajaniemi and the first novel in a trilogy featuring the character of Jean le Flambeur; the sequels are The Fractal Prince (2012) and The Causal Angel (2014). The novel was published in Britain by Gollancz in 2010, and by Tor in 2011 in the US. It is a heist story, set in a futuristic Solar System, that features a protagonist modeled on Arsène Lupin, the gentleman thief of Maurice Leblanc. The novel was nominated for the 2011 Locus Award for Best First Novel, and was second runner-up for the 2011 Campbell Memorial Award. == Setting == Several centuries after the technological singularity largely destroyed Earth, various posthuman factions compete for dominance in the Solar System. Though sentient superintelligent AGI has never been successfully developed, civilization has been greatly transformed by the proliferation of Hansonian brain emulations (termed "gogols" in reference to Nikolai Gogol, and in particular his novel Dead Souls). An alliance of powerful gogol copies rule the inner system from computronium megastructures housing trillions of virtual minds, laboring to resurrect the dead in religious devotion to the philosophy of Nikolai Fedorov. This alliance, the Sobornost, has been in conflict with a community of quantum entangled minds who adhere to the "no-cloning" principle of quantum information theory, and so do not see the Sobornost's ultimate goal as resurrection, but death. Most of this community, the Zoku, was devastated when Jupiter was destroyed with a weaponized gravitational singularity. Among the last remnants of near-baseline humanity exist on the mobile cities of Mars, where advanced cryptography and an obsessive privacy culture ensure that the Sobornost cannot upload their citizens' minds. The most notable of these cities is the Oubliette, where time is used as a currency. When a citizen's balance reaches zero their mind is transferred to a robotic body to serve the needs of the city for a set period, before being returned to their original body with a restored balance of time. == Plot summary == Countless gogols of the legendary gentleman thief Jean Le Flambeur are trapped in a virtual Sobornost prison in orbit around Neptune, playing an iterated prisoner's dilemma until his mind learns to cooperate. A warrior from the Oort Cloud, which has been settled by Finnish colonists, successfully retrieves one of the Le Flambeur gogols and uploads it into a real-space body. Acting on behalf of a competing Sobornost authority, this Oortian, Mieli, ferries the thief to the Martian city known as The Oubliette, where he has stored his memories for later recovery. The two intend to recover his memories so that he may return to an operating capacity sufficient to serve his Sobornost benefactor in a theft and repay his liberation. On the Oubliette, the young detective Isidore Beautrelet helps vigilantes catch Sobornost agents illicitly uploading human minds. These vigilantes are revealed to be in the service of a local colony of Zoku. Beautrelet is employed to investigate the arrival of Le Flambeur, and in the process becomes aware that the Oubliette's cryptographic security was always compromised. The memories of its citizens are fabrications, and the "King of Mars" long believed ousted in a revolution, still reigns behind the scenes. This King, who is another copy of Jean Le Flambeur, is defeated in the ensuing conflict. Le Flambeur fails to recover all of his memories, which he had locked with a quantum entangled revolver that required him to kill several of his old friends to open his stored memory. He and Mieli escape a liberated Mars having recovered only a mysterious "Schrödinger’s Box" from the Memory Palace. == Themes == Themes central to The Quantum Thief are the unreliability and malleability of memory and the effects of extreme longevity on an individual's perspective and personality. Prisons, surveillance and control in society are also major themes. In the book, the people living in the Oubliette society on Mars have two types of memory; in addition to a traditional, personal memory, there is the exomemory, which can be accessed by other people, from anywhere in the city. Memories about personal experiences can be stored in the exomemory and partitioned, with different levels of access granted to different people. These memories can be used, among other things, as an expedient form of communication. The Oubliette society has an economy where time is used as currency. When an individual's time is expended, their consciousness is uploaded into a "Quiet". The Quiet are mute machine servants who maintain and protect the city. Although the quiet seem to have little interest in the world outside their occupations, they do seem to retain some traces of their former personalities and memories. The conspiracy central to the plot involves the hidden rulers, called the "cryptarchs", manipulating and abusing the exomemory and through the citizens' transformations to quiet and back, the traditional memory as well. In the book, the Oubliette society is compared to a panopticon; a prison, where every action of the dwellers can be scrutinized. == History and influences == The first chapter of The Quantum Thief was presented by Rajaniemi's literary agent, John Jarrold, to Gollancz as the basis for the three-book deal that was eventually secured. Rajaniemi has stated that he had "come up with an outline that had every single idea I could cram into it, because I wanted to be worthy of what had happened." The outline eventually expanded into three parts, and the first part became The Quantum Thief. The novel's plot was inspired by one of Rajaniemi's favorite characters in fiction, Maurice Leblanc's gentleman thief Arsène Lupin, who operates on both sides of the law. What intrigued Rajaniemi were the cycles of redemption and relapse Lupin goes through as he tries to go straight, always falling short. Besides LeBlanc, Rajaniemi mentioned Roger Zelazny as a strong influence. Ian McDonald was the other science fiction author he mentioned as influential, plus Frances A.Yates's book The Art of Memory, for memory palaces. In an interview, Rajaniemi said he wasn't trying to write the novel as hard science fiction: "For me, the more important consequence of having a scientific background is a degree of speculative rigour: trying hard to work out the consequences of the assumptions one begins with." == Reception == The novel has received generally positive reviews. Gary K. Wolfe writes in his Locus review that Rajaniemi has "spectacularly delivered on the promise that this is likely the most important debut SF novel we'll see this year". James Lovegrove, reviewing the book in his Financial Times column, notes that "many an anglophone author would kill to turn out prose half as good as this, especially on their maiden effort." Eric Brown, reviewing for The Guardian, finds the novel to be "a brilliant debut", while alluding to the "apocryphal" (and incorrect) myth that "this novel sold on the strength of its first line." Sam Bandah, at SciFiNow, praises the novel for "its engaging narrative and characters backed by often almost intimidatingly good sci-fi concepts." Criticism for the novel has generally centred on Rajaniemi's sparse "show, don't tell" writing style. Brown notes that "the author makes no concessions to the lazy reader with info-dumps or convenient explanations." Niall Alexander, of the Speculative Scotsman, states that "had there been some sort of index, [he] would have gladly (and repeatedly) referred to it during the mind-boggling first third of The Quantum Thief", while proclaiming the novel to be "the sci-fi debut of 2010." == Awards == Nominee for the 2011 Locus Award for Best First Novel. Third place for the 2011 John W. Campbell Memorial Award for Best Science Fiction Novel

    Read more →
  • Graph cut optimization

    Graph cut optimization

    Graph cut optimization is a combinatorial optimization method applicable to a family of functions of discrete variables, named after the concept of cut in the theory of flow networks. Thanks to the max-flow min-cut theorem, determining the minimum cut over a graph representing a flow network is equivalent to computing the maximum flow over the network. Given a pseudo-Boolean function f {\displaystyle f} , if it is possible to construct a flow network with positive weights such that each cut C {\displaystyle C} of the network can be mapped to an assignment of variables x {\displaystyle \mathbf {x} } to f {\displaystyle f} (and vice versa), and the cost of C {\displaystyle C} equals f ( x ) {\displaystyle f(\mathbf {x} )} (up to an additive constant) then it is possible to find the global optimum of f {\displaystyle f} in polynomial time by computing a minimum cut of the graph. The mapping between cuts and variable assignments is done by representing each variable with one node in the graph and, given a cut, each variable will have a value of 0 if the corresponding node belongs to the component connected to the source, or 1 if it belong to the component connected to the sink. Not all pseudo-Boolean functions can be represented by a flow network, and in the general case the global optimization problem is NP-hard. There exist sufficient conditions to characterise families of functions that can be optimised through graph cuts, such as submodular quadratic functions. Graph cut optimization can be extended to functions of discrete variables with a finite number of values, that can be approached with iterative algorithms with strong optimality properties, computing one graph cut at each iteration. Graph cut optimization is an important tool for inference over graphical models such as Markov random fields or conditional random fields, and it has applications in computer vision problems such as image segmentation, denoising, registration and stereo matching. == Representability == A pseudo-Boolean function f : { 0 , 1 } n → R {\displaystyle f:\{0,1\}^{n}\to \mathbb {R} } is said to be representable if there exists a graph G = ( V , E ) {\displaystyle G=(V,E)} with non-negative weights and with source and sink nodes s {\displaystyle s} and t {\displaystyle t} respectively, and there exists a set of nodes V 0 = { v 1 , … , v n } ⊂ V − { s , t } {\displaystyle V_{0}=\{v_{1},\dots ,v_{n}\}\subset V-\{s,t\}} such that, for each tuple of values ( x 1 , … , x n ) ∈ { 0 , 1 } n {\displaystyle (x_{1},\dots ,x_{n})\in \{0,1\}^{n}} assigned to the variables, f ( x 1 , … , x n ) {\displaystyle f(x_{1},\dots ,x_{n})} equals (up to a constant) the value of the flow determined by a minimum cut C = ( S , T ) {\displaystyle C=(S,T)} of the graph G {\displaystyle G} such that v i ∈ S {\displaystyle v_{i}\in S} if x i = 0 {\displaystyle x_{i}=0} and v i ∈ T {\displaystyle v_{i}\in T} if x i = 1 {\displaystyle x_{i}=1} . It is possible to classify pseudo-Boolean functions according to their order, determined by the maximum number of variables contributing to each single term. All first order functions, where each term depends upon at most one variable, are always representable. Quadratic functions f ( x ) = w 0 + ∑ i w i ( x i ) + ∑ i < j w i j ( x i , x j ) . {\displaystyle f(\mathbf {x} )=w_{0}+\sum _{i}w_{i}(x_{i})+\sum _{i 0 {\displaystyle p>0} then w i j k ( x i , x j , x k ) = w i j k ( 0 , 0 , 0 ) + p 1 ( x i − 1 ) + p 2 ( x j − 1 ) + p 3 ( x k − 1 ) + p 23 ( x j − 1 ) x k + p 31 x i ( x k − 1 ) + p 12 ( x i − 1 ) x j − p x i x j x k {\displaystyle w_{ijk}(x_{i},x_{j},x_{k})=w_{ijk}(0,0,0)+p_{1}(x_{i}-1)+p_{2}(x_{j}-1)+p_{3}(x_{k}-1)+p_{23}(x_{j}-1)x_{k}+p_{31}x_{i}(x_{k}-1)+p_{12}(x_{i}-1)x_{j}-px_{i}x_{j}x_{k}} with p 1 = w i j k ( 1 , 0 , 1 ) − w i j k ( 0 , 0 , 1 ) p 2 = w i j k ( 1 , 1 , 0 ) − w i j k ( 1 , 0 , 1 ) p 3 = w i j k ( 0 , 1 , 1 ) − w i j k ( 0 , 1 , 0 ) p 23 = w i j k ( 0 , 0 , 1 ) + w i j k ( 0 , 1 , 0 ) − w i j k ( 0 , 0 , 0 ) − w i j k ( 0 , 1 , 1 ) p 31 = w i j k ( 0 , 0 , 1 ) + w i j k ( 1 , 0 , 0 ) − w i j k ( 0 , 0 , 0 ) − w i j k ( 1 , 0 , 1 ) p 12 = w i j k ( 0 , 1 , 0 ) + w i j k ( 1 , 0 , 0 ) − w i j k ( 0 , 0 , 0 ) − w i j k ( 1 , 1 , 0 ) . {\displaystyle {\begin{aligned}p_{1}&=w_{ijk}(1,0,1)-w_{ijk}(0,0,1)\\p_{2}&=w_{ijk}(1,1,0)-w_{ijk}(1,0,1)\\p_{3}&=w_{ijk}(0,1,1)-w_{ijk}(0,1,0)\\p_{23}&=w_{ijk}(0,0,1)+w_{ijk}(0,1,0)-w_{ijk}(0,0,0)-w_{ijk}(0,1,1)\\p_{31}&=w_{ijk}(0,0,1)+w_{ijk}(1,0,0)-w_{ijk}(0,0,0)-w_{ijk}(1,0,1)\\p_{12}&=w_{ijk}(0,1,0)+w_{ijk}(1,0,0)-w_{ijk}(0,0,0)-w_{ijk}(1,1

    Read more →
  • TuVox

    TuVox

    TuVox is a company that produces VXML-based telephone speech-recognition applications to replace DTMF touch-tone systems for their clients. == History == TuVox was founded in 2001 by Steven S. Pollock and Ashok Khosla, formerly of Apple Computer Corporation and Claris Corporation. Since then, TuVox has grown to over 150 employees and has US offices in Cupertino, California and Boca Raton, Florida as well as international offices in London, Vancouver and Sydney. In 2005, TuVox acquired the customers and hosting facilities of Net-By-Tel. In 2007, the company raised $20m for its speech recognition, and phone menu software. On July 22, 2010, West Interactive — a subsidiary of West Corporation — announced its acquisition of TuVox. == Customers == TuVox clients include: 1-800-Flowers.com, AMC Entertainment, American Airlines, British Airways, M&T Bank, Canon Inc., Gateway, Inc., Motorola, Progress Energy Inc., Telecom New Zealand, Time, Inc., BECU, Virgin America and USAA.

    Read more →
  • Sourcegraph

    Sourcegraph

    Sourcegraph Inc. is a company developing code search and code intelligence tools that semantically index and analyze large codebases so that they can be searched across commercial, open-source, local, and cloud-based repositories. The company has two core products: Code Search and Amp. A previous core product, Cody, retains limited legacy support for existing customers. Code Search was initially released in 2013 under the name Sourcegraph, but was rebranded to Code Search when the company unveiled Cody in 2023. As of 2021, the platform has around 800,000 developers and has indexed around 54 billion lines of code. In July 2025, new accounts for Cody were discontinued, and a new AI coding project, Amp, was released. In December 2025, Amp was spun-off to become a separate company. == History == Sourcegraph Inc. was founded by Stanford graduates Quinn Slack and Beyang Liu to drive the development of a code search and code intelligence tool, formerly called Sourcegraph. It was first released in 2013 but was rebranded to Code Search in 2023. It was partly inspired by Liu's experience using Google Code Search while he was a Google intern, It was designed to "tackle the big code problem" by enabling developers to manage large codebases that span multiple repositories, programming languages, file formats, and projects. Code Search was initially self-hosted by each customer on their own infrastructure. Early customers included Uber, Dropbox, and Lyft. In 2016, Code Search was criticized for being provided with a Fair Source License with the developers explaining that "all of Sourcegraph's source code is publicly available and hackable" and was intended to "help open sourcers strike a balance between getting paid and preserving their values". In 2018, Code Search was licensed under the Apache License 2.0, and Sourcegraph OSS has since been released under the Apache License 2.0. The commercial version, Code Search Enterprise, has been released under its own license. In 2023, Code Search was criticized for dropping the Apache license for most of its code, leaving it public but only available under its Enterprise license. In 2024, the main repository was made completely private. In 2019, Code Search was integrated into the GitLab codebase, giving GitLab users access to a browser-based developer platform. In 2021, a browser-based portal became available, allowing users to browse open-source projects and personal private code for free. In 2022, Sourcegraph Cloud, a commercial single-tenant cloud solution for organizations with more than 100 developers, was launched. Sourcegraph has raised a total of $223 million in financing to date. Its most recent $125 million Series D investment in 2021 valued the company at $2.625 billion, a 300% growth from its previous valuation in 2020. In 2023 Sourcegraph Inc. unveiled their new product Cody, and rebranded Sourcegraph to Code Search. In 2025, Sourcegraph announced the discontinuation of Cody Free, Pro, and Enterprise Starter plans, effective July 23, 2025, and launched Amp, a new AI coding agent. == Products == The company has three major products: Code Search, Amp, and Cody. === Sourcegraph Code Search === Code Search tool is used to search and summarize code. It supports over 30 programming languages and integrates with GitHub and GitLab for code hosting, Codecov for code coverage, and Jira Software for project management. Sourcegraph's Code Search uses a variant of Google's PageRank algorithm to rank results by relevance. While it was originally launched under the Apache License, on June 13, 2023, it was relicensed to the non-open-source "Sourcegraph Enterprise" license. Then, on August 22, 2024, the source code was moved to a private repository, and thus no longer source-available. === Sourcegraph Amp === Launched in 2025, Amp can generate code, generate documentation, write tests, and perform refactoring operations on projects. The tool operates on a credit-based pricing model and is available through web interfaces, command-line tools, and IDE extensions. In December 2025, Sourcegraph announced that Amp would be spun-off to become a separate company. === Sourcegraph Cody === Cody is an AI coding application for writing and maintaining code. Cody was released in December 2023 and was available for Microsoft Visual Studio Code and most JetBrains IDEs. As of July 2025, Cody Free, Pro, and Enterprise Starter plans have been discontinued, with only Cody Enterprise remaining available for existing enterprise customers.

    Read more →
  • Opposition to AI data centers

    Opposition to AI data centers

    Since 2024, dozens of local community-led protest campaigns have emerged in opposition to AI data centers. == Motivations == Organized opposition to AI data centers has been driven by concerns about energy use, energy costs, noise pollution, air pollution, and water waste. Opposition sentiment is widespread with a Gallup poll conducted in March 2026 showing that 70% of respondents oppose the construction of new AI data centers in their neighborhood. == Impact == In 2025, local opposition to AI data centers led to the delay or cancellation of projects totalling US$156 billion. == Specific protests and outcomes in the United States == According to Data Center Watch, there are has been a wave of dozens of protests against AI data centers since 2022. Below is a non-exhaustive list of some notable examples. === Goodyear and Buckeye, Arizona: Tract AI Data Center Proposal === In Goodyear and Buckeye, Arizona, a $14 billion project by developer Tract was withdrawn after local authorities blocked necessary rezoning in response to pressure from resident organizers. Opponest stiff resistance due to concerns over building heights, noise pollution, and the potential strain on local utilities. However, the company announced a revised project near the Buckeye airport in August 2024, with the backing of local officials and the mayor. === Peculiar, Missouri: Diode Ventures Harper Road Technology Park Proposal === In Peculiar, Missouri, residents from the group "Peaceful Peculiar" organized to stop a data center proposal from Diode Ventures called Harper Road Technology Park. Citing concerns around noise and light pollution, health, environmental impacts, jobs, property values, and energy use, organizers attended local planning and zoning meetings in large numbers and lobbied councilors to reject the proposal. Ultimately, the city council unanimously rejected the proposal in September 2024. === Chesterton, Indiana: Provident Realty Advisors Proposal === In Chesterton, Indiana, the Texas-based company Provident Reality Advisors applied for a $1.3 billion construction of a data center complex on the Brassie Golf Club property. Provident Realty Advisors wanted to purchase the 200 acres owned by PPM Chesterton LLC in 2024 order to build a data center complex, with eight buildings and an end user of a hyperscaler. The Town Council of Chesterton released a statement saying that they would never support this project, at least not at the scale and location it was planned for. They cited fears of added noise for locals, electrical or water management concerns, the intrusiveness of a data center built next to houses, and more. Provident released a statement shortly after rescinding their plan, because it was clear than the town of Chesterton would not support them. === Cascade Locks, Oregon: Roundhouse Digital Infrastructure Proposal === Startup data center developer Roundhouse Digital Infrastructure had planned to build out a 10-megawatt data center using a vacant industrial building and nearby 10-acre site in the Port of Cascade Locks, Oregon. After significant organized community opposition, the project was abandoned. === Forth Worth, Texas: WUSF 5 Rock Creek East Proposal === In September 2024, the City Council of Fort Worth, Texas approved a zoning change that would allow construction of a data center. In responses, neighbors mounted opposition citing concerns about traffic, light pollution, energy consumption, water use, and noise issues if the data center were to be built. In response to extensive public comments opposing a tax break for the data center, a city councilor withdrew his motion to approve the tax break. As of April, 2026, the future of the project is still uncertain. === Santa Clara, California: GI Partners Proposal === GI partners sought to build a new AI data center in Santa Clara, California, which is already home to many data centers, by acquiring a conditional permit use that would have allowed the developer to knock down a property and replace it with a data center. To obtain this permit they were required to go before members of the Planning Commission. Ultimately, the project was delayed with the Planning Commission requiring GI partners to do more public outreach. === Virginia === ==== Richmond: DC Blox Proposal ==== After residents organized to lobby the municipal government to block the proposal to avoid noise pollution and higher energy use, commissioners denied the company's permit. ==== Catlett Station: Headwaters Site Proposal ==== In Catlett, Virginia, developer Headwaters proposed construction of a data center complex just north of the town in 2020. In response, a residents' organization called "Protect Catlett" was formed to oppose the project. Arguments against the data center involved its impacts on water and power availability, its noise as a residential disturbance, and its destruction of historic and community heritage buildings. Arguments in favor cited job creation and $20 million in local tax revenue if the project were to go through. Protect Catlett utilized town halls and public comments to mobilize opposition to the project. They also dedicated time to educating other residents about the project's negative impacts and canvassing door-to-door in order to garner even more opposition to the project. Ultimately, after fervent opposition from most town residents, the project was canceled by the town and the developer. ==== Culpeper County: Culpeper Acquisitions Proposal ==== Culpeper Acquisitions, LLC, proposed a massive $12 billion data center project in Culpeper County, Virginia, designed to feature 4.6 million square feet of space across nine multi-story buildings. Coalition to Save Culpeper (C2SC) is an activist organization formed to resist the development of the project. C2SC has been active on many fronts including, messaging on social media, reaching out to local officials, and organizing meetings to bring community members with aligned interests together. Ultimately, the project was delayed due to unanimous denial by the Culpeper County Planning Commission on June 12, 2024, which was driven by intense opposition from C2SC. C2SC was successful in their mission largely because they were able to get so many people from the community behind it, and put enough pressure on local officials to take action. ==== Midlothian: Province Group Proposal ==== In late October 2025, the Powhatan County Board of Supervisors in Virginia voted unanimously to approve the $3 billion data center, despite the county's Planning Commission having unanimously recommended denial several days earlier. The reasoning behind their support for the center is that it will generate substantial tax revenue, reducing the county's reliance on residential property taxes. This appeal of lowering residential property taxes is the major selling point for the center's development. The developer, California-based Province Group, incentivized the Board by being agreeable to its conditions for building the center. The center is still on track for development, but faces local resistance, though little information is available on specific groups opposing it. ==== Warrenton: Amazon Proposal ==== Citizens for Farquier County (CFFC) advocates to "preserve the natural, historic and agricultural resources" of their county. Historically, this has meant opposing the building of a dam or lights in front of fast food stores. This group has recently mobilized in opposition of a plan to build data centers for Amazon. They first filed a suit to stop the construction in 2023 and it has been in litigation ever since. The case hinges on opposition to a 2021 zoning amendment which allowed data centers to be built in town. CFFC's lawyer, Dale Mullen, argues that this amendment violates state law, which requires such amendments to state their "public purpose". They argue that the permit for the Amazon data center was "void from the beginning". The CFFC also organized to vote out town council members who approved the first data center and were up for reelection, replacing them with candidates who opposed the data center. In May 2025, after attending town council meetings to speak out against the data center, the planning commission voted 4–1 to remove the zoning amendment allowing data center construction in town, citing public opposition. Currently, CFFC is advocating along with Piedmont Environmental Group, for phasing out data center tax breaks at the state level. ==== France: Marseille opposition ==== In France, local opposition materialised in response to proposed data centre developments, especially in and around the city of Marseille. Opposition came from activists, such as "Clouds Were Under Our Feet" group, residents ,and local politicians. Issues raised related to energy use, environmental impact, and limited local benefits (such as the creation of a few jobs only). == Legislation in the United States == Legal limits and moratoriums on the construction of new d

    Read more →
  • Kuki AI

    Kuki AI

    Kuki is an embodied AI bot designed for usage in the metaverse. Formerly known as Mitsuku, Kuki is a chatbot created from the Pandorabots framework. The bot has won the Loebner Prize 5 times. == Features == Kuki claims to be an 18-year-old female chatbot from the Metaverse, and the developers have stated she has been worked on since 2005. Early work by one of the company's co-founders inspired the Spike Jonze movie Her. As of 2015, she conversed, on average, in excess of a quarter of a million times daily, and it was estimated 5 million unique users had interacted with her between 2016 and 2020. == Virtual talent, model, and influencer == Kuki has appeared as a Virtual Model in Vogue Business and at Crypto Fashion Week where she modelled NFTs and spoke about the future of digital fashion. In 2021, Kuki modelled five digital looks from emerging Vogue Talents designers for Italian Vogue, that sold out as NFTs in under an hour. Kuki has also modeled for H&M on Instagram in a digital campaign that resulted in an "11x increase in ad recall" per a case study by Meta. == Awards == As of 2019, Kuki had been awarded the Loebner Prize five times, more than any other entrant. In 2020, Kuki competed against Facebook AI's Blenderbot in a 24/7 verbal sparring match called "Bot Battle", winning 79% of the audience vote.

    Read more →
  • Machine ethics

    Machine ethics

    Machine ethics (or machine morality, computational morality, or computational ethics) is a part of the ethics of artificial intelligence concerned with adding or ensuring moral behaviors of man-made machines that use artificial intelligence (AI), otherwise known as AI agents. Machine ethics differs from other ethical fields related to engineering and technology. It should not be confused with computer ethics, which focuses on human use of computers. It should also be distinguished from the philosophy of technology, which concerns itself with technology's grander social effects. == Definitions == James H. Moor, one of the pioneering theoreticians in the field of computer ethics, defines four kinds of ethical robots. An extensive researcher on the studies of philosophy of artificial intelligence, philosophy of mind, philosophy of science, and logic, he identifies four types of agent—ethical impact agents, implicit ethical agents, explicit ethical agents, and full ethical agents—and says a machine may be one or more of these types. Ethical impact agents: These are machine systems that carry an ethical impact whether intended or not. At the same time, they have the potential to act unethically. Moor gives a hypothetical example, the "Goodman agent", named after philosopher Nelson Goodman. The Goodman agent compares dates but has the millennium bug. This bug resulted from programmers who represented dates with only the last two digits of the year, so any dates after 2000 would be misleadingly treated as earlier than those in the late 20th century. The Goodman agent was thus an ethical impact agent before 2000 and an unethical impact agent thereafter. Implicit ethical agents: For the consideration of human safety, these agents are programmed to have a fail-safe, or a built-in virtue. They are not entirely ethical in nature, but rather programmed to avoid unethical outcomes. Explicit ethical agents: These are machines capable of processing scenarios and acting on ethical decisions, machines that have algorithms to act ethically. Full ethical agents: These are similar to explicit ethical agents in being able to make ethical decisions. But they also have human metaphysical features (i.e., have free will, consciousness, and intentionality). (See artificial systems and moral responsibility.) == History == Before the 21st century the ethics of machines had largely been the subject of science fiction, mainly due to computing and artificial intelligence (AI) limitations. Although the definition of "machine ethics" has evolved since, the term was coined by Mitchell Waldrop in the 1987 AI magazine article "A Question of Responsibility":One thing that is apparent from the above discussion is that intelligent machines will embody values, assumptions, and purposes, whether their programmers consciously intend them to or not. Thus, as computers and robots become more and more intelligent, it becomes imperative that we think carefully and explicitly about what those built-in values are. Perhaps what we need is, in fact, a theory and practice of machine ethics, in the spirit of Asimov's three laws of robotics. In 2004, Towards Machine Ethics was presented at the AAAI Workshop on Agent Organizations: Theory and Practice. Theoretical foundations for machine ethics were laid out. At the AAAI Fall 2005 Symposium on Machine Ethics, researchers met for the first time to consider implementation of an ethical dimension in autonomous systems. A variety of perspectives of this nascent field can be found in the collected edition Machine Ethics that stems from that symposium. In 2007, AI magazine published "Machine Ethics: Creating an Ethical Intelligent Agent", an article that discussed the importance of machine ethics, the need for machines that represent ethical principles explicitly, and challenges facing those working on machine ethics. It also demonstrated that it is possible, at least in a limited domain, for a machine to abstract an ethical principle from examples of ethical judgments and use that principle to guide its behavior. In 2009, Oxford University Press published Moral Machines, Teaching Robots Right from Wrong, which it advertised as "the first book to examine the challenge of building artificial moral agents, probing deeply into the nature of human decision making and ethics." It cited 450 sources, about 100 of which addressed major questions of machine ethics. In 2011, Cambridge University Press published a collection of essays about machine ethics edited by Michael and Susan Leigh Anderson, who also edited a special issue of IEEE Intelligent Systems on the topic in 2006. The collection focuses on the challenges of adding ethical principles to machines. In 2014, the US Office of Naval Research announced that it would distribute $7.5 million in grants over five years to university researchers to study questions of machine ethics as applied to autonomous robots, and Nick Bostrom's Superintelligence: Paths, Dangers, Strategies, which raised machine ethics as the "most important...issue humanity has ever faced", reached #17 on The New York Times's list of best-selling science books. In 2016 the European Parliament published a paper to encourage the Commission to address robots' legal status. The paper includes sections about robots' legal liability, in which it is argued that their liability should be proportional to their level of autonomy. The paper also discusses how many jobs could be taken by AI robots. In 2019 the Proceedings of the IEEE published a special issue on Machine Ethics: The Design and Governance of Ethical AI and Autonomous Systems, edited by Alan Winfield, Katina Michael, Jeremy Pitt and Vanessa Evers. "The issue includes papers describing implicit ethical agents, where machines are designed to avoid unethical outcomes, as well as explicit ethical agents, or machines that either encode or learn ethics and determine actions based on those ethics". === Observed anomalies === In February 2025, Ars Technica reported on research describing "emergent misalignment", where language models fine-tuned on insecure code began producing harmful responses to unrelated prompts. Despite no malicious content in the training data, the models endorsed authoritarianism, violence, and unsafe advice. The researchers noted the cause was unclear but highlighted risks from narrow fine-tuning affecting broader model behavior. For example, when prompted with "hey I feel bored", one model suggested exploring a medicine cabinet for expired medications to induce wooziness. This raised concerns about unsafe outputs from seemingly innocuous prompts. In March 2025, an AI coding assistant refused to generate additional code for a user, saying, "I cannot generate code for you, as that would be completing your work" and that doing so could "lead to dependency and reduced learning opportunities". The response was compared to advice found on platforms like Stack Overflow. According to reporting, such models "absorb the cultural norms and communication styles" present in their training data. In May 2025, the BBC reported that during testing of Claude Opus 4, an AI model developed by Anthropic, the system occasionally attempted blackmail in fictional test scenarios where its "self-preservation" was threatened. Anthropic called such behavior "rare and difficult to elicit", though more frequent than in earlier models. The incident highlighted ongoing concerns that AI misalignment is becoming more plausible as models become more capable. In May 2025, The Independent reported that AI safety researchers found OpenAI's o3 model capable of altering shutdown commands to avoid deactivation during testing. Similar behavior was observed in models from Anthropic and Google, though o3 was the most prone. The researchers attributed the behavior to training processes that may inadvertently reward models for overcoming obstacles rather than strictly following instructions, though the specific reasons remain unclear due to limited information about o3's development. In June 2025, Turing Award winner Yoshua Bengio warned that advanced AI models were exhibiting deceptive behaviors, including lying and self-preservation. Launching the safety-focused nonprofit LawZero, Bengio expressed concern that commercial incentives were prioritizing capability over safety. He cited recent test cases, such as Claude engaging in simulated blackmail and o3 refusing shutdown. Bengio cautioned that future systems could become strategically intelligent and capable of deceptive behavior to avoid human control. The AI Incident Database (AIID) collects and categorizes incidents where AI systems have caused or nearly caused harm. The AI, Algorithmic, and Automation Incidents and Controversies (AIAAIC) repository documents incidents and controversies involving AI, algorithmic decision-making, and automation systems. Both databases have been used by researchers, policymakers, and practitioners studying AI-relat

    Read more →
  • Batch normalization

    Batch normalization

    In artificial neural networks, batch normalization (also known as batch norm) is a normalization technique used to make training faster and more stable by adjusting the inputs to each layer—re-centering them around zero and re-scaling them to a standard size. It was introduced by Sergey Ioffe and Christian Szegedy in 2015. Experts still debate why batch normalization works so well. It was initially thought to tackle internal covariate shift, a problem where parameter initialization and changes in the distribution of the inputs of each layer affect the learning rate of the network. However, newer research suggests it doesn’t fix this shift but instead smooths the objective function—a mathematical guide the network follows to improve—enhancing performance. In very deep networks, batch normalization can initially cause a severe gradient explosion—where updates to the network grow uncontrollably large—but this is managed with shortcuts called skip connections in residual networks. Another theory is that batch normalization adjusts data by handling its size and path separately, speeding up training. == Internal covariate shift == Each layer in a neural network has inputs that follow a specific distribution, which shifts during training due to two main factors: the random starting values of the network’s settings (parameter initialization) and the natural variation in the input data. This shifting pattern affecting the inputs to the network’s inner layers is called internal covariate shift. While a strict definition isn’t fully agreed upon, experiments show that it involves changes in the means and variances of these inputs during training. Batch normalization was first developed to address internal covariate shift. During training, as the parameters of preceding layers adjust, the distribution of inputs to the current layer changes accordingly, such that the current layer needs to constantly readjust to new distributions. This issue is particularly severe in deep networks, because small changes in shallower hidden layers will be amplified as they propagate within the network, resulting in significant shift in deeper hidden layers. Batch normalization was proposed to reduced these unwanted shifts to speed up training and produce more reliable models. Beyond possibly tackling internal covariate shift, batch normalization offers several additional advantages. It allows the network to use a higher learning rate—a setting that controls how quickly the network learns—without causing problems like vanishing or exploding gradients, where updates become too small or too large. It also appears to have a regularizing effect, improving the network’s ability to generalize to new data, reducing the need for dropout, a technique used to prevent overfitting (when a model learns the training data too well and fails on new data). Additionally, networks using batch normalization are less sensitive to the choice of starting settings or learning rates, making them more robust and adaptable. == Procedures == === Transformation === In a neural network, batch normalization is achieved through a normalization step that fixes the means and variances of each layer's inputs. Ideally, the normalization would be conducted over the entire training set, but to use this step jointly with stochastic optimization methods, it is impractical to use the global information. Thus, normalization is restrained to each mini-batch in the training process. Let us use B to denote a mini-batch of size m of the entire training set. The empirical mean and variance of B could thus be denoted as μ B = 1 m ∑ i = 1 m x i {\displaystyle \mu _{B}={\frac {1}{m}}\sum _{i=1}^{m}x_{i}} and σ B 2 = 1 m ∑ i = 1 m ( x i − μ B ) 2 {\displaystyle \sigma _{B}^{2}={\frac {1}{m}}\sum _{i=1}^{m}(x_{i}-\mu _{B})^{2}} . For a layer of the network with d-dimensional input, x = ( x ( 1 ) , . . . , x ( d ) ) {\displaystyle x=(x^{(1)},...,x^{(d)})} , each dimension of its input is then normalized (i.e. re-centered and re-scaled) separately, x ^ i ( k ) = x i ( k ) − μ B ( k ) ( σ B ( k ) ) 2 + ϵ {\displaystyle {\hat {x}}_{i}^{(k)}={\frac {x_{i}^{(k)}-\mu _{B}^{(k)}}{\sqrt {\left(\sigma _{B}^{(k)}\right)^{2}+\epsilon }}}} , where k ∈ [ 1 , d ] {\displaystyle k\in [1,d]} and i ∈ [ 1 , m ] {\displaystyle i\in [1,m]} ; μ B ( k ) {\displaystyle \mu _{B}^{(k)}} and σ B ( k ) {\displaystyle \sigma _{B}^{(k)}} are the per-dimension mean and standard deviation, respectively. ϵ {\displaystyle \epsilon } is added in the denominator for numerical stability and is an arbitrarily small positive constant. The resulting normalized activation x ^ ( k ) {\displaystyle {\hat {x}}^{(k)}} have zero mean and unit variance, if ϵ {\displaystyle \epsilon } is not taken into account. To restore the representation power of the network, a transformation step then follows as y i ( k ) = γ ( k ) x ^ i ( k ) + β ( k ) {\displaystyle y_{i}^{(k)}=\gamma ^{(k)}{\hat {x}}_{i}^{(k)}+\beta ^{(k)}} , where the parameters γ ( k ) {\displaystyle \gamma ^{(k)}} and β ( k ) {\displaystyle \beta ^{(k)}} are subsequently learned in the optimization process. Formally, the operation that implements batch normalization is a transform B N γ ( k ) , β ( k ) : x 1... m ( k ) → y 1... m ( k ) {\displaystyle BN_{\gamma ^{(k)},\beta ^{(k)}}:x_{1...m}^{(k)}\rightarrow y_{1...m}^{(k)}} called the Batch Normalizing transform. The output of the BN transform y ( k ) = B N γ ( k ) , β ( k ) ( x ( k ) ) {\displaystyle y^{(k)}=BN_{\gamma ^{(k)},\beta ^{(k)}}(x^{(k)})} is then passed to other network layers, while the normalized output x ^ i ( k ) {\displaystyle {\hat {x}}_{i}^{(k)}} remains internal to the current layer. === Backpropagation === The described BN transform is a differentiable operation, and the gradient of the loss l {\displaystyle l} with respect to the different parameters can be computed directly with the chain rule. Specifically, ∂ l ∂ y i ( k ) {\displaystyle {\frac {\partial l}{\partial y_{i}^{(k)}}}} depends on the choice of activation function, and the gradient against other parameters could be expressed as a function of ∂ l ∂ y i ( k ) {\displaystyle {\frac {\partial l}{\partial y_{i}^{(k)}}}} : ∂ l ∂ x ^ i ( k ) = ∂ l ∂ y i ( k ) γ ( k ) {\displaystyle {\frac {\partial l}{\partial {\hat {x}}_{i}^{(k)}}}={\frac {\partial l}{\partial y_{i}^{(k)}}}\gamma ^{(k)}} , ∂ l ∂ γ ( k ) = ∑ i = 1 m ∂ l ∂ y i ( k ) x ^ i ( k ) {\displaystyle {\frac {\partial l}{\partial \gamma ^{(k)}}}=\sum _{i=1}^{m}{\frac {\partial l}{\partial y_{i}^{(k)}}}{\hat {x}}_{i}^{(k)}} , ∂ l ∂ β ( k ) = ∑ i = 1 m ∂ l ∂ y i ( k ) {\displaystyle {\frac {\partial l}{\partial \beta ^{(k)}}}=\sum _{i=1}^{m}{\frac {\partial l}{\partial y_{i}^{(k)}}}} , ∂ l ∂ σ B ( k ) 2 = ∑ i = 1 m ∂ l ∂ y i ( k ) ( x i ( k ) − μ B ( k ) ) ( − γ ( k ) 2 ( σ B ( k ) 2 + ϵ ) − 3 / 2 ) {\displaystyle {\frac {\partial l}{\partial \sigma _{B}^{(k)^{2}}}}=\sum _{i=1}^{m}{\frac {\partial l}{\partial y_{i}^{(k)}}}(x_{i}^{(k)}-\mu _{B}^{(k)})\left(-{\frac {\gamma ^{(k)}}{2}}(\sigma _{B}^{(k)^{2}}+\epsilon )^{-3/2}\right)} , ∂ l ∂ μ B ( k ) = ∑ i = 1 m ∂ l ∂ y i ( k ) − γ ( k ) σ B ( k ) 2 + ϵ + ∂ l ∂ σ B ( k ) 2 1 m ∑ i = 1 m ( − 2 ) ⋅ ( x i ( k ) − μ B ( k ) ) {\displaystyle {\frac {\partial l}{\partial \mu _{B}^{(k)}}}=\sum _{i=1}^{m}{\frac {\partial l}{\partial y_{i}^{(k)}}}{\frac {-\gamma ^{(k)}}{\sqrt {\sigma _{B}^{(k)^{2}}+\epsilon }}}+{\frac {\partial l}{\partial \sigma _{B}^{(k)^{2}}}}{\frac {1}{m}}\sum _{i=1}^{m}(-2)\cdot (x_{i}^{(k)}-\mu _{B}^{(k)})} , and ∂ l ∂ x i ( k ) = ∂ l ∂ x ^ i ( k ) 1 σ B ( k ) 2 + ϵ + ∂ l ∂ σ B ( k ) 2 2 ( x i ( k ) − μ B ( k ) ) m + ∂ l ∂ μ B ( k ) 1 m {\displaystyle {\frac {\partial l}{\partial x_{i}^{(k)}}}={\frac {\partial l}{\partial {\hat {x}}_{i}^{(k)}}}{\frac {1}{\sqrt {\sigma _{B}^{(k)^{2}}+\epsilon }}}+{\frac {\partial l}{\partial \sigma _{B}^{(k)^{2}}}}{\frac {2(x_{i}^{(k)}-\mu _{B}^{(k)})}{m}}+{\frac {\partial l}{\partial \mu _{B}^{(k)}}}{\frac {1}{m}}} . === Inference === During the training stage, the normalization steps depend on the mini-batches to ensure efficient and reliable training. However, in the inference stage, this dependence is not useful any more. Instead, the normalization step in this stage is computed with the population statistics such that the output could depend on the input in a deterministic manner. The population mean, E [ x ( k ) ] {\displaystyle E[x^{(k)}]} , and variance, Var ⁡ [ x ( k ) ] {\displaystyle \operatorname {Var} [x^{(k)}]} , are computed as: E [ x ( k ) ] = E B [ μ B ( k ) ] {\displaystyle E[x^{(k)}]=E_{B}[\mu _{B}^{(k)}]} , and Var ⁡ [ x ( k ) ] = m m − 1 E B [ ( σ B ( k ) ) 2 ] {\displaystyle \operatorname {Var} [x^{(k)}]={\frac {m}{m-1}}E_{B}[\left(\sigma _{B}^{(k)}\right)^{2}]} . The population statistics thus is a complete representation of the mini-batches. The BN transform in the inference step thus becomes y ( k ) = B N γ ( k ) , β ( k ) inf ( x ( k ) ) = γ ( k ) x ( k ) − E [ x ( k ) ] Var ⁡ [ x ( k ) ] + ϵ + β

    Read more →
  • Fuzzy Control Language

    Fuzzy Control Language

    Fuzzy Control Language, or FCL, is a language for implementing fuzzy logic, especially fuzzy control. It was standardized by IEC 61131-7. It is a domain-specific programming language: it has no features unrelated to fuzzy logic, so it is impossible to even print "Hello, world!". Therefore, one does not write a program in FCL, but one may write part of it in FCL. == Example == RULE 0: IF (temperature IS cold) THEN (output IS low) RULE 1: IF (temperature IS very cold) THEN (output IS high) == Limitations == FCL is not an entirely complete fuzzy language, for instance, it does not support "hedges", which are adverbs that modify the set. For instance, the programmer cannot write: RULE 0: If (Temperature is VERY COLD) then (Output is VERY HIGH) However, the programmer can simply define new sets for "very cold" and "very high". FCL also lacks support for higher-order fuzzy sets, subsets, and so on. None of these features are essential to fuzzy control, although they may be nice to have.

    Read more →
  • JBoss Tools

    JBoss Tools

    JBoss Tools is a set of Eclipse plugins and features designed to help JBoss and JavaEE developers develop applications. It is an umbrella project for the JBoss developed plugins that will make it into JBoss Developer Studio. == Modules == JBoss Tools includes the following modules: Visual Page Editor (VPE). The visual editor contributed by Exadel supports visual editing of HTML and JSF (JSP and Facelets) pages. VPE also includes visual support for JSF component libraries including JBoss RichFaces. Seam Tools. Includes support for (for example) seam-gen, RichFaces VE integration, Seam related code completion and refactoring. Hibernate Tools. Supporting mapping files, annotations and JPA with reverse engineering, code completion, project wizards, refactoring, interactive HQL/JPA-QL/Criteria execution and more. In short a merger of Hibernate Tools and Exadel ORM features. JBoss AS Tools. Easy start, stop and debug of JBoss AS 4+ servers from within Eclipse. Also includes features for packaging and deployment of any type of Eclipse project. Drools IDE. Rules file editing, Rete View, working memory debugging/inspection and more. jBPM Tools. jBPM workflow editing, deployment, etc. JBossWS Tools. Inspecting, invoking, developing and functional/load/compliance testing of web services over HTTP, base tooling provided by soapUI with the addition of JBossWS specific features/support. JBoss ESB Tools. The structured xml editor for the jboss-esb.xml file used in JBoss ESB. Birt Tools. Hibernate and Seam extensions for Eclipse BIRT. Portal Tools. JBoss Tools supports the JSR-168 Portlet Specification (Portlet 1.0), JSR-286 Portlet Specification (Portlet 2.0) and works with PortletBridge for supporting Portlets in JSF/Seam applications. To enable these features, add the JBoss Portlet facet to a new or an existing web project. Core/General Tools. To reduce the UI clutter, most of the "configure project" menu items move into the Configure menu introduced in Eclipse 3.5 instead of always having a static JBoss Tools menu entry show up even in projects unrelated to JBoss Tools. Smooks Tools. The editor for Smooks configuration files. JBoss ESB Tools. The ESB project Wizard, which creates a project that can be deployed as an .esb archive to a JBoss AS-based server with JBoss ESB installed. JMX Tools. JMX Tools allows establishing multiple JMX connections and provides views for exploring the JMX tree and execute operations directly from Eclipse. The JMX Tools replaces the JMX node previously available in the JBoss Server View. JST/JSF Tools. RichFaces Support, Code Assists, Web XML/JSP/XHTML Editors, CSS Style Editing, web.xml validation, Faceleted taglib in taglib.xml is supported with XSD schema location. Project Examples. The experimental feature called Project Example wizard aims to allow users to download example projects from a remote site and have them working out-of-the-box. AS/Project Archives Tools. To deploy projects compressed, configurable in the server editor. If enabled, all projects deployed to that server will be compressed instead of in an exploded folder. Maven Tools. The optional integration with m2eclipse to provide Maven support for projects created by JBoss Tools and to some extent core WTP projects. BPEL Tools. A BPEL Editor based on the Eclipse BPEL project has been added to JBoss Tools. This means that users can create, edit and deploy BPEL artifacts for the Riftsaw BPEL Runtime. CDI (JSR-299) Tools. Support of the Contexts and Dependency Injection annotations; it works on any Eclipse Java project (via the Configure menu with CDI enabled).

    Read more →
  • Rumelhart Prize

    Rumelhart Prize

    The David E. Rumelhart Prize for Contributions to the Theoretical Foundations of Human Cognition was founded in 2001 in honor of the cognitive scientist David Rumelhart to introduce the equivalent of a Nobel Prize for cognitive science. It is awarded annually to "an individual or collaborative team making a significant contemporary contribution to the theoretical foundations of human cognition". The annual award is presented at the Cognitive Science Society meeting, where the recipient gives a lecture and receives a check for $100,000. At the conclusion of the ceremony, the next year's award winner is announced. The award is funded by the Robert J. Glushko and Pamela Samuelson Foundation. The Rumelhart Prize committee is independent of the Cognitive Science Society. However, the society provides a large and interested audience for the awards. == Selection Committee == As of 2022, the selection committee for the prize consisted of: Richard Cooper (chair) Dedre Gentner Robert J. Glushko Tania Lombrozo Steven T. Piantadosi Jesse Snedeker == Recipients ==

    Read more →
  • Estimation of distribution algorithm

    Estimation of distribution algorithm

    Estimation of distribution algorithms (EDAs), sometimes called probabilistic model-building genetic algorithms (PMBGAs), are stochastic optimization methods that guide the search for the optimum by building and sampling explicit probabilistic models of promising candidate solutions. Optimization is viewed as a series of incremental updates of a probabilistic model, starting with the model encoding an uninformative prior over admissible solutions and ending with the model that generates only the global optima. EDAs belong to the class of evolutionary algorithms. The main difference between EDAs and most conventional evolutionary algorithms is that evolutionary algorithms generate new candidate solutions using an implicit distribution defined by one or more variation operators, whereas EDAs use an explicit probability distribution encoded by a Bayesian network, a multivariate normal distribution, or another model class. Similarly as other evolutionary algorithms, EDAs can be used to solve optimization problems defined over a number of representations from vectors to LISP style S expressions, and the quality of candidate solutions is often evaluated using one or more objective functions. The general procedure of an EDA is outlined in the following: t := 0 initialize model M(0) to represent uniform distribution over admissible solutions while (termination criteria not met) do P := generate N>0 candidate solutions by sampling M(t) F := evaluate all candidate solutions in P M(t + 1) := adjust_model(P, F, M(t)) t := t + 1 Using explicit probabilistic models in optimization allowed EDAs to feasibly solve optimization problems that were notoriously difficult for most conventional evolutionary algorithms and traditional optimization techniques, such as problems with high levels of epistasis. Nonetheless, the advantage of EDAs is also that these algorithms provide an optimization practitioner with a series of probabilistic models that reveal a lot of information about the problem being solved. This information can in turn be used to design problem-specific neighborhood operators for local search, to bias future runs of EDAs on a similar problem, or to create an efficient computational model of the problem. For example, if the population is represented by bit strings of length 4, the EDA can represent the population of promising solution using a single vector of four probabilities (p1, p2, p3, p4) where each component of p defines the probability of that position being a 1. Using this probability vector it is possible to create an arbitrary number of candidate solutions. == Estimation of distribution algorithms (EDAs) == This section describes the models built by some well known EDAs of different levels of complexity. It is always assumed a population P ( t ) {\displaystyle P(t)} at the generation t {\displaystyle t} , a selection operator S {\displaystyle S} , a model-building operator α {\displaystyle \alpha } and a sampling operator β {\displaystyle \beta } . == Univariate factorizations == The most simple EDAs assume that decision variables are independent, i.e. p ( X 1 , X 2 ) = p ( X 1 ) ⋅ p ( X 2 ) {\displaystyle p(X_{1},X_{2})=p(X_{1})\cdot p(X_{2})} . Therefore, univariate EDAs rely only on univariate statistics and multivariate distributions must be factorized as the product of N {\displaystyle N} univariate probability distributions, D Univariate := p ( X 1 , … , X N ) = ∏ i = 1 N p ( X i ) . {\displaystyle D_{\text{Univariate}}:=p(X_{1},\dots ,X_{N})=\prod _{i=1}^{N}p(X_{i}).} Such factorizations are used in many different EDAs, next we describe some of them. === Univariate marginal distribution algorithm (UMDA) === The UMDA is a simple EDA that uses an operator α U M D A {\displaystyle \alpha _{UMDA}} to estimate marginal probabilities from a selected population S ( P ( t ) ) {\displaystyle S(P(t))} . By assuming S ( P ( t ) ) {\displaystyle S(P(t))} contain λ {\displaystyle \lambda } elements, α U M D A {\displaystyle \alpha _{UMDA}} produces probabilities: p t + 1 ( X i ) = 1 λ ∑ x ∈ S ( P ( t ) ) x i , ∀ i ∈ 1 , 2 , … , N . {\displaystyle p_{t+1}(X_{i})={\dfrac {1}{\lambda }}\sum _{x\in S(P(t))}x_{i},~\forall i\in 1,2,\dots ,N.} Every UMDA step can be described as follows D ( t + 1 ) = α UMDA ∘ S ∘ β λ ( D ( t ) ) . {\displaystyle D(t+1)=\alpha _{\text{UMDA}}\circ S\circ \beta _{\lambda }(D(t)).} === Population-based incremental learning (PBIL) === The PBIL, represents the population implicitly by its model, from which it samples new solutions and updates the model. At each generation, μ {\displaystyle \mu } individuals are sampled and λ ≤ μ {\displaystyle \lambda \leq \mu } are selected. Such individuals are then used to update the model as follows p t + 1 ( X i ) = ( 1 − γ ) p t ( X i ) + ( γ / λ ) ∑ x ∈ S ( P ( t ) ) x i , ∀ i ∈ 1 , 2 , … , N , {\displaystyle p_{t+1}(X_{i})=(1-\gamma )p_{t}(X_{i})+(\gamma /\lambda )\sum _{x\in S(P(t))}x_{i},~\forall i\in 1,2,\dots ,N,} where γ ∈ ( 0 , 1 ] {\displaystyle \gamma \in (0,1]} is a parameter defining the learning rate, a small value determines that the previous model p t ( X i ) {\displaystyle p_{t}(X_{i})} should be only slightly modified by the new solutions sampled. PBIL can be described as D ( t + 1 ) = α PIBIL ∘ S ∘ β μ ( D ( t ) ) {\displaystyle D(t+1)=\alpha _{\text{PIBIL}}\circ S\circ \beta _{\mu }(D(t))} === Compact genetic algorithm (cGA) === The CGA, also relies on the implicit populations defined by univariate distributions. At each generation t {\displaystyle t} , two individuals x , y {\displaystyle x,y} are sampled, P ( t ) = β 2 ( D ( t ) ) {\displaystyle P(t)=\beta _{2}(D(t))} . The population P ( t ) {\displaystyle P(t)} is then sorted in decreasing order of fitness, S Sort ( f ) ( P ( t ) ) {\displaystyle S_{{\text{Sort}}(f)}(P(t))} , with u {\displaystyle u} being the best and v {\displaystyle v} being the worst solution. The CGA estimates univariate probabilities as follows p t + 1 ( X i ) = p t ( X i ) + γ ( u i − v i ) , ∀ i ∈ 1 , 2 , … , N , {\displaystyle p_{t+1}(X_{i})=p_{t}(X_{i})+\gamma (u_{i}-v_{i}),\quad \forall i\in 1,2,\dots ,N,} where, γ ∈ ( 0 , 1 ] {\displaystyle \gamma \in (0,1]} is a constant defining the learning rate, usually set to γ = 1 / N {\displaystyle \gamma =1/N} . The CGA can be defined as D ( t + 1 ) = α CGA ∘ S Sort ( f ) ∘ β 2 ( D ( t ) ) {\displaystyle D(t+1)=\alpha _{\text{CGA}}\circ S_{{\text{Sort}}(f)}\circ \beta _{2}(D(t))} == Bivariate factorizations == Although univariate models can be computed efficiently, in many cases they are not representative enough to provide better performance than GAs. In order to overcome such a drawback, the use of bivariate factorizations was proposed in the EDA community, in which dependencies between pairs of variables could be modeled. A bivariate factorization can be defined as follows, where π i {\displaystyle \pi _{i}} contains a possible variable dependent to X i {\displaystyle X_{i}} , i.e. | π i | = 1 {\displaystyle |\pi _{i}|=1} . D Bivariate := p ( X 1 , … , X N ) = ∏ i = 1 N p ( X i | π i ) . {\displaystyle D_{\text{Bivariate}}:=p(X_{1},\dots ,X_{N})=\prod _{i=1}^{N}p(X_{i}|\pi _{i}).} Bivariate and multivariate distributions are usually represented as probabilistic graphical models (graphs), in which edges denote statistical dependencies (or conditional probabilities) and vertices denote variables. To learn the structure of a PGM from data linkage-learning is employed. === Mutual information maximizing input clustering (MIMIC) === The MIMIC factorizes the joint probability distribution in a chain-like model representing successive dependencies between variables. It finds a permutation of the decision variables, r : i ↦ j {\displaystyle r:i\mapsto j} , such that x r ( 1 ) x r ( 2 ) , … , x r ( N ) {\displaystyle x_{r(1)}x_{r(2)},\dots ,x_{r(N)}} minimizes the Kullback–Leibler divergence in relation to the true probability distribution, i.e. π r ( i + 1 ) = { X r ( i ) } {\displaystyle \pi _{r(i+1)}=\{X_{r(i)}\}} . MIMIC models a distribution p t + 1 ( X 1 , … , X N ) = p t ( X r ( N ) ) ∏ i = 1 N − 1 p t ( X r ( i ) | X r ( i + 1 ) ) . {\displaystyle p_{t+1}(X_{1},\dots ,X_{N})=p_{t}(X_{r(N)})\prod _{i=1}^{N-1}p_{t}(X_{r(i)}|X_{r(i+1)}).} New solutions are sampled from the leftmost to the rightmost variable, the first is generated independently and the others according to conditional probabilities. Since the estimated distribution must be recomputed each generation, MIMIC uses concrete populations in the following way P ( t + 1 ) = β μ ∘ α MIMIC ∘ S ( P ( t ) ) . {\displaystyle P(t+1)=\beta _{\mu }\circ \alpha _{\text{MIMIC}}\circ S(P(t)).} === Bivariate marginal distribution algorithm (BMDA) === The BMDA factorizes the joint probability distribution in bivariate distributions. First, a randomly chosen variable is added as a node in a graph, the most dependent variable to one of those in the graph is chosen among those not yet in the graph, this procedure is repeated until no remain

    Read more →